查找并替换每一行--bash脚本

时间:2013-10-29 10:06:01

标签: macos bash replace

我想在文件中删除以'#'开头的每一行。我跑了(我正在使用osx)

 sed -i '' -e 's/#.*/d' file

但我收到此错误消息:

sed: 1: "s/#.*/d
": unescaped newline inside substitute pattern

2 个答案:

答案 0 :(得分:1)

s中的sed命令表示“替换”,它需要两个参数:

s/pattern/replacement/

您要做的只是匹配#开头的行并删除它们,因此您需要sed程序:

/^#/d

请注意,该模式需要以^ (meaning "start of line")开头,否则会匹配该行中任意位置的#

答案 1 :(得分:1)

如上面的Gareth Rees所述,正确的命令是:

sed '/^#/ d' file

这个好的sed教程以您的问题为例:

http://www.grymoire.com/Unix/Sed.html#toc-uh-30