我可以搜索/多个.txt文件从终端快速更换? [重复](Can I search/replace

2019-07-30 21:10发布

这个问题已经在这里有一个答案:

  • 递归搜索和替换在Mac和Linux上的文本文件 14个回答

我有一个包含纯文本约100 .txt文件。 不知何故,一些数据已损坏,需要找到/替换。

我需要搜索的字符“ - ”,并用长划线替换为:“ - ”。

有没有一种方法来在终端的命令迅速做到这一点?

在我的目录中的.txt文件的名称按顺序编号:的1.txt,2.txt等。

谢谢!

Answer 1:

GNU sed

sed -i 's/--/—/g' *.txt

OSX BSD sed

您需要指定备份文件扩展名。 要创建具有扩展名的备份文件: .txt.bak

sed -i '.bak' 's/--/—/g' *.txt

要完全替换文件,指定一个空的扩展:

sed -i '' 's/--/—/g' *.txt


Answer 2:

sed -i 's/--/–/g' *.txt应该工作。 该-i标志sed使得它作用于原地的,该文件s代表的替代品,而g使得它取代在同一行模式的多次出现。 查一查sed的文档获取更多信息。

编辑:这适用于GNU / Linux的; 事实证明,语法上OSX略有不同(见注释和接受的答案)。



文章来源: Can I search/replace in multiple .txt files quickly from Terminal? [duplicate]