如何将包含特定短语的文件复制到另一个目录?

如何将包含特定短语的文件复制到另一个目录?

我有一个巨大的包含日志文件的目录,并且想要移动其中包含特定“短语”的文件。

IE

log1.csv ------ containing word "xzy"
log2.csv ------ containing word "abc"
log3.csv ------ containing word "xzy"
..
log1000.csv ------ containing word "123"

现在我想移动(或复制)所有*.csv内容到新目录

最好的解决方案是什么?

答案1

findgrep

find /dir/ -type f -name 'log*.csv' -exec grep -q 'xyz' {} \; -exec mv -t /target/ {} \;
  • find /dir/ -type f -name 'log*.csv'查找log<anything>.csv目录内的所有文件/dir

  • -exec grep -q 'xyz' {} \;在每个找到的文件上运行grep以匹配正则表达式模式xyz

  • -exec mv -t /target/ {} \;将匹配的文件(基于退出状态grep;成功(0)表示匹配)从上一步移动到目标目录/target

相关内容