在每行开头使用bash命令添加一个命令
问题的原因是需要在每一行的开头添加一个bash命令,并且希望能够使用更好的方式来替代\x27
。
解决方法是使用awk命令,将每一行的内容作为参数传递给print函数,并在print函数中使用'
来输出字符串。最终生成的字符串是sed -n '/^<</,/^>>/p'
加上每一行的内容。
另外,还有一种解决方法是使用sed命令的-i选项,将^
替换为sed -n '/^<</,/^>>/p'
,这样可以直接修改原始文件,而不需要创建一个新文件。
完整的解决方法如下所示:
$ cat test
abc
def
ghi
$ awk '{print "sed -n \x27/^<</,/^>>/p\x27 " $0}' test
sed -n '/^<</,/^>>/p' abc
sed -n '/^<</,/^>>/p' def
sed -n '/^<</,/^>>/p' ghi
感谢User123的建议,可以使用sed命令的-i选项来替代生成新文件的步骤,具体命令如下:
$ sed -i "s#^#sed -n '/^<</,/^>>/p' #" test.txt
以上就是解决问题的完整过程。