我有两个目录。
在directory_1中,我有很多.txt文件
这些文件的内容(例如file1.txt)是字符列表
file1.txt
--
rer_098
dfrkk9
在directory_2中,我有很多文件,其中两个是“rer_098”和“dfrkk9”。
这些文件的内容如下:
rer_098
--
>123_nbd
sasert
>456_nbd
ffjko
dfrkk9
--
>789_nbd
figyi
>012_nbd
jjjygk
现在在一个单独的输出目录(directory_3)中,对于上面的示例,我想要如下输出文件:
file1.txt
--
>123_nbd
sasert
>456_nbd
ffjko
>789_nbd
figyi
>012_nbd
jjjygk
file2.txt 依此类推
谢谢!
最佳答案
这可能适合你(GNU 并行):
parallel 'cat {} | parallel -I@@ cat dir_2/@@ > dir_3/{/}' ::: dir_1/*.txt
使用两次并行调用,第一次遍历 dir_1
并将其输出传输到第二次并行中。此cat
输入文件并输出结果dir_3
,保留第一次并行调用的原始名称。
注意使用 -I
选项将参数分隔符从默认的 {}
重命名为 @@
。
关于linux - 将文件内容与其他文件名匹配以提取和合并内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61994460/