【发布时间】:2017-04-04 10:23:32
【问题描述】:
请帮帮我:
我正在使用以下命令来搜索和替换目录(包括子目录)中文件中的字符串:
find . -type f -exec perl -api -e 's/\b(?!00)[A-Z0-9]{6,}/dummy/g' {} \;
我想要的是在它对一个文件执行上述操作之后,我想同时将它移动到另一个文件夹,然后处理下一个文件。
感谢任何帮助。
谢谢
【问题讨论】:
请帮帮我:
我正在使用以下命令来搜索和替换目录(包括子目录)中文件中的字符串:
find . -type f -exec perl -api -e 's/\b(?!00)[A-Z0-9]{6,}/dummy/g' {} \;
我想要的是在它对一个文件执行上述操作之后,我想同时将它移动到另一个文件夹,然后处理下一个文件。
感谢任何帮助。
谢谢
【问题讨论】:
你可以试试这个:
find . -type f -exec perl -api -e 's/\b(?!00)[A-Z0-9]{6,}/dummy/g' {} \; -exec mv {} /to/this/directory \;
第一个-exec 谓词成功完成后,find 将运行下一个-exec。 This 回答相关问题将为您提供更多信息。
【讨论】:
我想要的是在它对一个文件执行上述操作后,我想同时将它移动到另一个文件夹,然后处理下一个文件。
你可以这样做:
while IFS= read -rd '' file; do
perl -ap -e 's/\b(?!00)[A-Z0-9]{6,}/dummy/g' "$file" > "/dest/$file"
done < <(find . -type f -print0)
这也会处理带有空格和特殊字符的文件。
【讨论】: