名为animals的原始文件如下所示:
dog
cat
dolphin
cat这个命令通过将sed '/dog/i\ Linux Scripting' animals放在Linux Scripting之前来工作,我得到了以下内容:
Linux Scripting
dog
cat
dolphin
cat然而,如果我做了动物头之后,文件是不变的。
$ head animals
dog
cat
dolphin
cat如何以覆盖现有文件的方式执行此操作?
注意:用于多个文件,我希望animals与*.txt保持一致
发布于 2014-05-07 01:47:11
您可以使用-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文件。
https://stackoverflow.com/questions/23507088
复制相似问题