在输入管道上使用SED,如何在文本中间插入将用作linux命令的输入?
echo foobar | sed 's/^/one two /'
这将输出one two foobar
。
如何使用SED重新格式化,以便管道值介于one foobar two
之间?
我已经尝试连续连接两个SED命令但是这不起作用并且格式化搞砸了。所以我正在寻找一种方法来使用单个SED命令。
答案 0 :(得分:2)
echo foobar | sed 's/\(.*\)/one \1 two/'
输出:
one foobar two
答案 1 :(得分:0)
使用perl
$ echo foobar | perl -lne 'print "one $_ two"'
one foobar two
-l
选项从输入行中删除换行符并将其再次添加到print
语句$_
包含输入行的默认变量与awk
$ echo foobar | awk '{print "one " $0 " two"}'
one foobar two
$0
周围的空格是可选的,用于清晰