我需要在 Linux 文件中用另一个关键字/字符串替换关键字。
IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml
index.htm
</IfModule>
在这里,我想替换或交换索引.html到索引.php在第二行,或者我想优先考虑索引.php代替索引.html并放置索引.html代替索引.php。
我必须通过 shell 脚本执行上述任务,为此我已经尝试了该命令:
awk 'NR==2 { t = $2; $2 = $5; $5 = t; print; } ' abc.txt
但它没有保存在文件中,即 abc.txt我想在其中更改内容。
请让我知道我做错了什么。
对于任何命令cmd
,要更新原始文件:
cmd file > tmp && mv tmp file
如果你使用的是GNU awk,你可以改用awk -i inplace '...' file
,它会在内部为你做上述事情,就像sed -i
和perl -i
等一样。
您只需sed
即可做到这一点:
sed -i.bak 's/index.html/index.php/g' abc.txt
这将用abc.txt
中的index.php
替换index.html
的所有,并将abc.txt
原始内容的副本保存在abc.txt.bak
上。
另一个选项是使用以下perl命令:
perl -pi -w -e 's/index.html/index.php/g;' abc.txt