是否可以使用一个 sed 命令执行以下操作,而无需另外两个 sed 管道?
sed s"/obbama/trump/" | sed s'/"//g' | sed s'/://g'
这里描述的 sed 需要用 trump 替换单词 obbama 并删除字符 ' " ' 和 ':'
答案1
脚本应从脚本操作数字符串或选项参数的组合中获取-e 脚本和-f 脚本文件选项。
第一个(“脚本操作数字符串”)本质上是由此处的另一个答案(分号分隔)处理的。
和-e
:
$ sed -e "s/obbama/trump/" -e 's/"//g' -e 's/://g'
和-f
:
$ cat sed-script
s/obbama/trump/
s/"//g
s/://g
$ sed -f sed-script
顺便说一句,更传统的做法是将“s”放在我在示例中完成的每个替换指令的引号内-e
。
答案2
sed
是一种脚本语言,与 sh 或 awk 或 perl 或任何其他语言一样,允许在脚本中使用多个语句。您可以使用分号;
或换行符分隔每个 sed 语句。例如
sed 's/obbama/trump/; s/"//g; s/://g'
或者
sed 's/obbama/trump/
s/"//g
s/://g'
后面的空格字符;
是可选的,但 IMO 使 sed 脚本更具可读性。