检查列数并相应地移动文件

检查列数并相应地移动文件

我收到数百个 .txt 文件,其中包含 9 列和 11 列。我需要查看列数并将 9 列文件移动到另一个目录。

答案1

如果您以识别列的方式来表示列awk,那么您可以使用以下内容:

awk 'NF==9{printf "%s\0", FILENAME}{nextfile}' * | xargs -0 mv -t /path/to/dir

解释

  • NF==9检查该行是否有 9 列
  • printf "%s\0", FILENAME打印以空字节分隔的文件名
  • nextfile继续下一个文件
  • xargs -0读取以空字节分隔的列表
  • mv -t target将所有匹配的文件移动到target目录

相关内容