【问题标题】:Moving file to another folder after performing search and replace operation on it对其执行搜索和替换操作后将文件移动到另一个文件夹
【发布时间】:2017-04-04 10:23:32
【问题描述】:

请帮帮我:

我正在使用以下命令来搜索和替换目录(包括子目录)中文件中的字符串:

find . -type f -exec perl -api -e 's/\b(?!00)[A-Z0-9]{6,}/dummy/g' {} \;

我想要的是在它对一个文件执行上述操作之后,我想同时将它移动到另一个文件夹,然后处理下一个文件。

感谢任何帮助。

谢谢

【问题讨论】:

    标签: regex linux shell


    【解决方案1】:

    你可以试试这个:

    find . -type f -exec perl -api -e 's/\b(?!00)[A-Z0-9]{6,}/dummy/g' {} \; -exec mv {} /to/this/directory \;
    

    第一个-exec 谓词成功完成后,find 将运行下一个-execThis 回答相关问题将为您提供更多信息。

    【讨论】:

    • 没问题。我很高兴这有帮助。
    【解决方案2】:

    我想要的是在它对一个文件执行上述操作后,我想同时将它移动到另一个文件夹,然后处理下一个文件。

    你可以这样做:

    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)
    

    这也会处理带有空格和特殊字符的文件。

    【讨论】:

      猜你喜欢
      • 2020-01-21
      • 1970-01-01
      • 2016-10-29
      • 1970-01-01
      • 2019-10-27
      • 2022-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多