该文件的内容如下:
[Greet]
Hello
Hi
Hola
我想添加一个名为的字符串Hey
,以便它的位置位于之后Hello
:
[Greet]
Hello
Hey
Hi
Hola
有没有办法echo
通过命令行使用其他本机 Linux 工具来执行上述操作?
答案1
使用sed
。
由于sed
插入或附加行的命令需要换行,因此最简单的方法是将sed
命令放在文件中并告诉sed
执行该文件。
例如:要Hey
在 (every) 之后插入Hello
,请创建以下文件:
/Hello/a\
Hey
然后调用sed
:
sed -f appendheyafterhello.sed < sourcefile > resultfile
这里还有更多sed
命令,包括如何插入一行前按模式或按特定的行号。
答案2
以下是一些 perl 解决方案:
perl -p -i -e 'print "Hey\n" if /Hi/' filename
或者
perl -p -i -e 'print "Hey\n" if $. == 4' filename
或者
perl -n -i -e 'print; print "Hey\n" if /Hello/' filename