现在我正在使用
echo sed '/\Random/a \
newly added line' info.txt
将一些文本附加到文件中,但我还需要在某个字符串下面添加文本,比如说随机,我知道使用 sed 是可能的,但是当脚本运行时,它会在控制台中显示新的文件内容,但它不是实际上显示文件中的相同更改。
例子:-
输入文件
Some text
Random
Some stuff
输出文件
Some text
Random
newly added line
Some stuff
答案1
我假设这echo
只是一个拼写错误,因为除非您的环境有特定的情况,否则相同的命令只会给出输出
sed '/Random/a\
newly added line' info.txt
如果您想sed
实际操作文件而不是发送到 stdout,那么您需要使用-i
一些sed
实现支持的开关,尽管语法不同:
GNU、busybox、NetBSD、OpenBSD 至少:
sed -i '/Random/a\ newly added line' info.txt
FreeBSD、MacOS:
sed -i '' '/Random/a\ newly added line' info.txt
该
-i
开关在 Solaris 中不可用sed
。
最好一开始就不要运行它,-i
以确保它按照您的要求运行。一旦您确定是这样,请添加-i
,您将获得所需的内容。
文件的内容如下所示,可以通过以下方式确认cat info.txt
:
Some text
Random
newly added line
Some stuff