【问题标题】:Add a character after a specific character and before a character在特定字符之后和字符之前添加一个字符
【发布时间】:2018-05-23 02:05:54
【问题描述】:

我有一个 bash 脚本,我需要在 a 之后(和之前)插入一个 '

MYSTRING(FOO_1234_BAR)

需要

MYSTRING('FOO_1234_BAR')

根据我一直在阅读的内容,我应该使用 sed,但我遇到了语法问题。

谢谢。

【问题讨论】:

  • sed 将是一个易于使用的工具。您是否阅读过sed 的正则表达式语法?您在语法上有什么具体问题?

标签: bash sed


【解决方案1】:

编辑:如果 Input_file 与所示示例相同,则添加一个简单的解决方案 sed 之一。

sed "s/(/&'/;s/)/'&/"  Input_file

关注sed 可能对您有所帮助。

sed "s/\([^(]\)(\([^)]*\))/\1('\2')/"    Input_file

输出如下。

MYSTRING('FOO_1234_BAR')

如果您想将输出保存到 Input_file 本身,请使用 sed -i,或者如果您需要备份 Input_file 并将输出保存到 Input_file 本身,请在上述命令中使用 sed -i.bak

【讨论】:

  • 这很接近,但单引号在错误的一边。这导致 MYSTRING'(FOO_1234_BAR)' 引号需要在括号内而不是在外面。
  • @user1864311,现在检查并告诉我吗?
【解决方案2】:

另一个sed

sed "s/(\(.*\))/('\1')/" file

【讨论】:

    猜你喜欢
    • 2016-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    • 1970-01-01
    • 1970-01-01
    • 2022-09-24
    相关资源
    最近更新 更多