名为animals
的原始文件如下所示:
dog
cat
dolphin
cat
此命令有效sed '/dog/i\ Linux Scripting' animals
在Linux Scripting
之前放置dog
,我得到以下内容:
Linux Scripting
dog
cat
dolphin
cat
然而,如果我在此之后对动物进行了检查,则文件不会改变。
$ head animals
dog
cat
dolphin
cat
如何以覆盖现有文件的方式执行此操作?
注意:对于多个文件我希望animals
与*.txt
答案 0 :(得分:0)
您可以使用-i
选项进行文件内更改。
$ sed '/dog/i\ Linux Scripting' animals
Linux Scripting
dog
cat
dolphin
cat
$ sed -i '/dog/i\ Linux Scripting' animals
$ cat animals
Linux Scripting
dog
cat
dolphin
cat
来自man
页面:
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
因此,您可以通过传递后缀来创建原始文件的备份。这可以通过以下方式来完成:
sed -i.bak '/dog/i\ Linux Scripting' animals
这将对您的animals
文件进行文件内更改,但如果您需要原始文件,则会创建animals.bak
文件。