所以我遇到的问题是我正在使用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
答案 0 :(得分:3)
字符串中的某些字符由sed解释。要避免此问题,您应该使用基于字符串的方法,而不是基于正则表达式的方法。例如,使用awk:
awk -v line="$line" '{ print line $0 }' file
这会将shell变量$line
中的字符串添加到file
中每行的开头。