如何在sed输出的开头添加行

时间:2015-10-05 11:30:19

标签: linux string bash sed

所以我遇到的问题是我正在使用sed从bash脚本中的字符串中提取一堆对象,但是我需要在sed输出的开头添加相同的字符串。一个例子:

数据:

  

| field1 | field2 | select * from object1,object2 |

sed输出:

object1|
object2|

我尝试了什么:

将整行粘贴到名为LINE的变量中,然后:

sed "s/^.*/$LINE&/g"

这导致了一个错误:

  

s

的未知选项
echo $LINE
|field1|field2|select * from object1, object2|

因此变量没有任何问题。

这是所需的输出:

  

| field1 | field2 | select * from object1,object2 | object1 |

     

| field1 | field2 | select * from object1,object2 | object2 |

真诚地感谢任何帮助:)

-Ryan

1 个答案:

答案 0 :(得分:3)

字符串中的某些字符由sed解释。要避免此问题,您应该使用基于字符串的方法,而不是基于正则表达式的方法。例如,使用awk:

awk -v line="$line" '{ print line $0 }' file

这会将shell变量$line中的字符串添加到file中每行的开头。