【问题标题】:Extracting 200 lines from all the files in a folder从文件夹中的所有文件中提取 200 行
【发布时间】:2020-12-07 04:26:17
【问题描述】:

我有一个包含大量 CSV 文件的文件夹。还有子文件夹。对于每个这样的文件,我需要提取前 200 行(以制作 db 子样本),用这些行创建另一个文件。所以我会有几个新文件,每个文件都有 200 行。我需要在 Linux Ubuntu 中完成此任务并使用 OS shell 命令。有没有办法做到这一点?提前致谢。

【问题讨论】:

  • 循环和top 命令?你试过什么?
  • findhead
  • split -l 200 是另一种选择。

标签: linux shell ubuntu


【解决方案1】:

这条线可以满足您的需求:

find . -type f -name "*.csv" -print|xargs -I@ sh -c 'head -n200 @ > @.headed'

这条线由不同的部分组成:

  1. 查找必须“带头”的文件
  2. find 命令的输出只是一个文件列表
  3. xargs 命令获取文件列表并在其上运行带有 sh -c 选项的命令传递
  4. 显示文件第一行第 200 行并将其放入具有 "headed" 扩展名的文件名中的命令

有了这一行,您就有了一个解决方案,该解决方案可以扩展到您编写的那个附近的另一个用例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-10
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 2018-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多