我有大约100个包含纯文本的.txt文件。不知何故,一些数据已被破坏,需要找到/替换。
我需要搜索字符' - '并用长划线代替:' - '。
有没有办法在终端中使用命令快速完成此操作?
我目录中.txt文件的名称按顺序编号:1.txt,2.txt等。
谢谢!
答案 0 :(得分:36)
GNU sed
:
sed -i 's/--/—/g' *.txt
OSX BSD sed
:
您需要指定备份文件扩展名。要创建扩展名为.txt.bak
:
sed -i '.bak' 's/--/—/g' *.txt
要完全替换文件,请指定一个空的扩展名:
sed -i '' 's/--/—/g' *.txt
答案 1 :(得分:3)
sed -i 's/--/–/g' *.txt
应该有效。 -i
的{{1}}标记使其适用于文件,sed
代表替代,s
使其替换多次出现的模式同一行。查看g
的文档以获取更多信息。
编辑:这适用于GNU / Linux;事实证明,OSX上的语法略有不同(请参阅注释和接受的答案)。