猿问

从Bash命令查找和替换文本文件

从Bash命令查找和替换文本文件

对于给定的输入字符串进行查找和替换的最简单方法是什么,比方说abc,并替换为另一个字符串,比如XYZ在文件中/tmp/file.txt

我正在编写一个应用程序并使用IronPython通过SSH执行命令 - 但我不熟悉Unix,也不知道要查找什么。

我听说Bash除了是命令行界面外,还可以是一种非常强大的脚本语言。所以,如果这是真的,我假设您可以执行这些操作。

我能用bash做什么,以及实现目标的最简单(一行)脚本是什么?


交互式爱情
浏览 1364回答 3
3回答

Helenr

最简单的方法是使用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,}这循环遍历每一行,进行替换,并写入临时文件(不想破坏输入)。最后的移动只是临时移动到原始名称。

收到一只叮咚

文件操作通常不是由Bash完成的,而是由Bash调用的程序完成的,例如:>&nbsp;perl&nbsp;-pi&nbsp;-e&nbsp;'s/abc/XYZ/g'&nbsp;/tmp/file.txt该-i标志告诉它进行就地替换。有关man perlrun详细信息,请参阅参考资料,包括如何备份原始文件。
随时随地看视频慕课网APP
我要回答