我有一组 .txt 文件对。在每对文件中,File1 包含一个整数,File2 包含多行文本。在我正在编写的脚本中,我想使用 File1 中的整数来指定从 File2 顶部删除多少行,然后将这些行写入另一个文件。我正在使用 gnu-parallel 在许多文件对上并行运行它。
似乎一种简单的方法是将 File1 的内容作为选项-n
的参数传递head
-- 这可能吗?我尝试过使用xargs
and cat File1
,但都不起作用。
文件对示例:
File1:
2
File2:
AAA
BBB
CCC
DDD
期望的输出:
File3:
AAA
BBB
如果我没有使用 gnu-parallel,我可以将 File1 的内容分配给一个变量(尽管我不知道是否可以将其传递到head
的-n
选项中?);然而,并行{}
似乎使这种方法变得复杂。
如果需要,我可以提供更多信息。
答案1
答案2
扩展吉尔斯的答案:
parallel 'head -n "$(cat {1})" {2}' ::: File1s* :::+ Corresponding_File2s*
您可能有很多想要链接到 File2 的 File1。 :::+ 就是这样做的。