从Bash命令查找和替换文本文件对于给定的输入字符串进行查找和替换的最简单方法是什么,比方说abc,并替换为另一个字符串,比如XYZ在文件中/tmp/file.txt?我正在编写一个应用程序并使用IronPython通过SSH执行命令 - 但我不熟悉Unix,也不知道要查找什么。我听说Bash除了是命令行界面外,还可以是一种非常强大的脚本语言。所以,如果这是真的,我假设您可以执行这些操作。我能用bash做什么,以及实现目标的最简单(一行)脚本是什么?
3 回答
Helenr
TA贡献1780条经验 获得超4个赞
最简单的方法是使用sed(或perl):
sed -i -e 's/abc/XYZ/g' /tmp/file.txt
由于该-i
选项,将调用sed进行就地编辑。这可以从bash调用。
如果你真的真的想使用bash,那么以下内容可以工作:
while read a ; do echo ${a//abc/XYZ} ; done < /tmp/file.txt > /tmp/file.txt.t ; mv /tmp/file.txt{.t,}
这循环遍历每一行,进行替换,并写入临时文件(不想破坏输入)。最后的移动只是临时移动到原始名称。
收到一只叮咚
TA贡献1821条经验 获得超4个赞
文件操作通常不是由Bash完成的,而是由Bash调用的程序完成的,例如:
> perl -pi -e 's/abc/XYZ/g' /tmp/file.txt
该-i
标志告诉它进行就地替换。
有关man perlrun
详细信息,请参阅参考资料,包括如何备份原始文件。
添加回答
举报
0/150
提交
取消