从终端更改文件内容

从终端更改文件内容

如何从终端更改文件内容?我不想使用任何应用程序,例如文本编辑器,因为我想将其用于脚本。

举个例子,我想把/etc/apache2/mods-enabled/dir.conf这个文件

<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

对此

<IfModule mod_dir.c>
    DirectoryIndex index.php
</IfModule>

答案1

有很多方法可以做到这一点,取决于您是想重新排列第二行的字段还是只是将其设置为您想要的。这是最简单的方法:

sed -i.bak -e 's/DirectoryIndex.*/DirectoryIndex index.php/' dir.conf

这会将该DirectoryIndex行(包括该单词后的所有内容)更改为DirectoryIndex index.php。这会将-i.bak原始文件的备份副本保存在 中dir.conf.bak。运行此命令后,我们会得到:

$ cat dir.conf
<IfModule mod_dir.c>
    DirectoryIndex index.php
</IfModule>

$ cat dir.conf.bak
<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

答案2

你可以使用

echo content > file

或者如果它确实是静态的,请保留该文件的额外副本并将其 cp 起来。

相关内容