bash中的"sed"命令

ajs*_*sie 37 linux bash shell ubuntu sed

有人可以为我解释这个命令:

cat | sed -e 's,%,$,g' | sudo tee /etc/init.d/dropbox << EOF
   echo "Hello World"
EOF
Run Code Online (Sandbox Code Playgroud)

"sed"命令有什么作用?

Jac*_*lly 42

sedStream EDitor.它可以做很多很酷的事情,但最常见的是文本替换.

s,%,$,g命令行的一部分是sed要执行的命令.的s代表的替代品,所述,字符是定界符(其他字符均可使用; /,:@是流行).该%是要匹配的模式(这里文字百分号),并且$是第二匹配模式(这里是文字美元符号).所述g在末端装置g上的每个线(否则将只更新第一匹配)lobally替换.

  • sed将始终在每一行上运行.`g`选项使它替换该行上的每个匹配而不是该行上的第一个匹配. (3认同)

cod*_*ict 27

这里sed是更换所有出现%$在它的标准输入.

举个例子

$ echo 'foo%bar%' | sed -e 's,%,$,g'
Run Code Online (Sandbox Code Playgroud)

将产生"foo $ bar $".


Lek*_*eyn 7

它read Hello World(cat),替换所有(g)出现的%by $和(over)将其写/etc/init.d/dropbox为root.