如果下面的问题看起来是重复的,但我没有找到任何合适的解决方案,请提前道歉。
我正在尝试水平合并几个文本文件。格式说明如下:
1)所有文件在其文件名中都包含"_final_significant“作为公共部分(例如File1_final_significant.txt、File2_final_significant.txt等)
2)这些文件位于不同的子目录中。每个文件夹包含一个*_final_significant.txt文件和其他.txt文件
e.g
Folder 1
File1_final_significant.txt
Irrelevantfile.txt
Folder 2
File2_final_significant.txt
Irrelevantfile.txt
etc我只想合并所有文件夹中的_final_significant.txt文件。
3)每个目标文件的行数和数据不均匀,分成三列,用空格分隔。目标文件之间不共享任何值。
e.g
File1_final_significant.txt
Name1 Name2 Value1
Name3 Name4 Value2
n rows
File2_final_significant.txt
Name5 Name6 Value3
Name7 Name8 Value4
k rows所需的输出为
Merged_file.txt
Name1 Name2 Value1 Name5 Name6 Value3 etc
Name3 Name4 Value2 Name7 Name8 Value4 etc
n rows k rows我知道这是一个常见的问题,到目前为止,我从类似的帖子中找到了几个建议,但都没有成功。我遇到了以下解决方案,但它不是水平合并我的文件内容,而是合并文件目录。
find /path_to_files -type f -name '*final_significant*' | xargs | paste -s >> merged_file.txt这是我第一次使用查找或粘贴命令,因此我将感谢您的帮助和时间。请在答案中只包含bash选项,上面是一个更大更复杂的脚本的一部分,我不希望转向perl/R等。
非常感谢您抽出时间来
https://stackoverflow.com/questions/51310690
复制相似问题