这个问题已经在这里有一个答案:
- 递归搜索和替换在Mac和Linux上的文本文件 14个回答
我有一个包含纯文本约100 .txt文件。 不知何故,一些数据已损坏,需要找到/替换。
我需要搜索的字符“ - ”,并用长划线替换为:“ - ”。
有没有一种方法来在终端的命令迅速做到这一点?
在我的目录中的.txt文件的名称按顺序编号:的1.txt,2.txt等。
谢谢!
这个问题已经在这里有一个答案:
我有一个包含纯文本约100 .txt文件。 不知何故,一些数据已损坏,需要找到/替换。
我需要搜索的字符“ - ”,并用长划线替换为:“ - ”。
有没有一种方法来在终端的命令迅速做到这一点?
在我的目录中的.txt文件的名称按顺序编号:的1.txt,2.txt等。
谢谢!
GNU sed
:
sed -i 's/--/—/g' *.txt
OSX BSD sed
:
您需要指定备份文件扩展名。 要创建具有扩展名的备份文件: .txt.bak
:
sed -i '.bak' 's/--/—/g' *.txt
要完全替换文件,指定一个空的扩展:
sed -i '' 's/--/—/g' *.txt
sed -i 's/--/–/g' *.txt
应该工作。 该-i
标志sed
使得它作用于原地的,该文件s
代表的替代品,而g
使得它取代在同一行模式的多次出现。 查一查sed
的文档获取更多信息。
编辑:这适用于GNU / Linux的; 事实证明,语法上OSX略有不同(见注释和接受的答案)。