为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

从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,}

这循环遍历每一行,进行替换,并写入临时文件(不想破坏输入)。最后的移动只是临时移动到原始名称。


查看完整回答
反对 回复 2019-08-06
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

文件操作通常不是由Bash完成的,而是由Bash调用的程序完成的,例如:

> perl -pi -e 's/abc/XYZ/g' /tmp/file.txt

-i标志告诉它进行就地替换。

有关man perlrun详细信息,请参阅参考资料,包括如何备份原始文件。


查看完整回答
反对 回复 2019-08-06
  • 3 回答
  • 0 关注
  • 1362 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信