【发布时间】:2021-01-26 04:37:06
【问题描述】:
我有一个名为 /home/myusername/originalFiles 的文件夹,其中有大量 *.gz 大文件。在这个文件夹及其子文件夹中,我们也有大量的 *.gz 大文件。无需删除或修改我需要的任何 *.gz 文件:
a) 对于 /home/myusername/originalFiles(和子文件夹)中的每个文件 f,展开它,
b) 从展开的 f 中提取前 200 行
c) 将 b) 中的“200 行”文件再次转换为 gz 文件
d) 将 c) 中的“gzipped 200 行”文件复制到另一个名为 /home/myusername/newSampleFiles 的文件夹中,但要遵守 /home/myusername/originalFiles 中的文件夹结构和名称。因此,如果原始文件 f 位于 /home/myusername/originalFiles/year2020 之类的子文件夹中,则 c) 中相应的“gzipped 200 行”文件必须位于 /home/myusername/newSampleFiles/year2020 中并使用相同的名称和扩展名/home/myusername/originalFiles 中的原始文件
e) 不要保留在 a) 中获得的任何扩展文件
f) 仅使用 Linux cmds 执行此操作
我试过了
找到 . -type f -name "*.gz" -print | xargs -I@ sh -c 'head -n200 @> /home/myusername/newSampleFiles/@'
但我收到了错误消息:
/home/myusername/newSampleFiles/./someFile.txt.gz: 没有这样的文件或目录
【问题讨论】: