小编mrb*_*ash的帖子

按表值连接文件

我有许多文件,每个文件的名称中都包含特定模式,例如ABC1234001携带有关某些数据组(多列表)的信息。我也有一个info.tsv这样的表:

group1    ABC1234001    ABC1234010
group2    ABC1234011    ABC1234018
group3    ABC1234019    ABC1234028
...       ...           ...
Run Code Online (Sandbox Code Playgroud)

它包含了:

  • “group”列,指定组,
  • “第一个文件”列,指定包含相应组信息的第一个文件的模式(按字母顺序),
  • “最后一个文件”列,指定包含相应组信息的最后一个文件(按字母顺序)的模式。

所以我需要做的是将每个组的文件合并到一个文件中 - 就像

cat ABC123401{1..8}* >> group2.tsv
Run Code Online (Sandbox Code Playgroud)

以 group2 为例 - 在读取此info.tsv文件时。在此给定示例中,所有文件 ( ABC1234011.tsv, ABC1234012.tsv, ABC1234013.tsv, ABC1234014.tsv, ABC1234015.tsv, ABC1234016.tsv, ABC1234017.tsv, ABC1234018.tsv) 都连接成一个group2.tsv文件

我要做的事情如下:

group1    ABC1234001    ABC1234010
group2    ABC1234011    ABC1234018
group3    ABC1234019    ABC1234028
...       ...           ...
Run Code Online (Sandbox Code Playgroud)

但我不太确定如何迭代地更改这种方法的变量。也许使用awk更有用,但我不知道。该脚本应该生成一堆名为group1.tsv,的文件group2.tsv,其中包含表中从“第一个文件”到“最后一个文件”的相应文件的内容。请帮我编写脚本来执行此操作。

bash shell-script text-processing

7
推荐指数
1
解决办法
653
查看次数

标签 统计

bash ×1

shell-script ×1

text-processing ×1