如何从终端更改文件内容?我不想使用任何应用程序,例如文本编辑器,因为我想将其用于脚本。
举个例子,我想把/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 起来。