批处理正则表达式查找和替换文件夹和子文件夹内容

时间:2012-04-23 19:38:12

标签: regex osx-snow-leopard replace batch-processing

我有一个包含子文件夹的文件夹,其中包含文本文档(数百个)。文本文档都需要查找和替换。我用来查找文本的正则表达式是:

^([A-Z])[\r\n]+(\w+)\b

这被替换为:

$1$2

如何批量处理此查找并替换包含子文件夹的文件夹?

我正在使用mac(osx 10.6.8)

2 个答案:

答案 0 :(得分:2)

你也可以使用sed:

cd /path/to/files  # make sure you are in the right directory
find . -type f -exec sed -i.bak 's/^([A-Z])[\r\n]+(\w+)\b/$1$2/g' {} \;

编辑:我刚才意识到上面是Textmate搜索/替换字符串。对于sed,你必须使用:

find . -type f -exec sed -i.bak 's/^([A-Z])[\r\n]+(\w+)\b/\1\2/g' {} \;

这会备份所有文件。

答案 1 :(得分:0)

您可以使用findperl执行此操作:

find ./* -exec perl -p -i -e 's/^([A-Z])[\r\n]+(\w+)\b/$1$2/g' {} \;

警告:未经测试:)