在sed

时间:2018-01-24 12:46:45

标签: regex bash sed command command-line-interface

sed -i -e 's_.*_text-to-be-insterted-on-each-line&_' '/media/root/<filename>' 

运作良好,简洁干净,就像我喜欢.....但我不能/无法找到关于所使用的忍者命令的任何信息 - 不是手动或谷歌。

  • sed = Stream EDitor
  • -i =就地(即保存回原始文件)
  • 命令字符串:
    • s =替代命令

但我很难从例子中了解_.*_是如何翻译的

以及如何使用&amp; _正在使用&_

如果有人可以解释GREAT或任何记录这些独特的sed命令的资源吗?

1 个答案:

答案 0 :(得分:2)

s_.*_foo&_

与:

相同
s/.*/foo&/

您也可以使用其他分隔符,例如:

s#.*#foo&# or s@patter@replacement@

有时候在/替换中使用s以外的分隔符很方便。例如,您希望对文件路径进行一些更改。

替换部分中的&表示匹配的组0具有给定的模式(正则表达式)。

一个例子可以更好地解释:

kent$  sed 's/aa/*&*/'<<<'aabbcc'
*aa*bbcc

您已在上面的输入字符串中看到匹配的组0为aa