带有SED的管道输入周围的Concat文本

时间:2016-09-18 18:22:56

标签: linux sed

在输入管道上使用SED,如何在文本中间插入将用作linux命令的输入?

 echo foobar | sed 's/^/one two /'

这将输出one two foobar

如何使用SED重新格式化,以便管道值介于one foobar two之间?

我已经尝试连续连接两个SED命令但是这不起作用并且格式化搞砸了。所以我正在寻找一种方法来使用单个SED命令。

2 个答案:

答案 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周围的空格是可选的,用于清晰