sed +替换字符串/单词并在字符串后忽略空格

时间:2011-11-24 12:09:44

标签: sed

我使用以下sed语法将#zonezone

替换为时区字符串

实际上sed命令替换它, 但是在时区字符串之后我们有一个或更多的空格然后sed没有替换它

我的问题是我需要在sed语法中更改以替换timezone字符串 在这两种情况下

  1. 在时区字符串之后我们没有任何空格
  2. 在时区字符串后,我们有空格或更多

    sed -i '/timezone$/s/timezone/#timezone/' file
    

3 个答案:

答案 0 :(得分:4)

您可以尝试:

sed -i.bak -r 's/timezone ?$/#timezone/' file

您需要在空格后添加?,这将使空格可选。此外,您还必须添加-r选项以使sed了解扩展正则表达式。

此外,您未在-i选项后指定备份扩展名。

答案 1 :(得分:0)

将两个案例说明为一个,当它位于行尾时,您想要替换“时区”,后跟零个或多个空格。应该是这样的:

sed -i 's/timezone *$/#timezone/' file

答案 2 :(得分:0)

对于您的情况,这应该是理想的解决方案。

sed 's/timezone *$\|timezone/#&/' INPUT_FILE