Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 对文件执行复杂连接_Unix_Join - Fatal编程技术网

Unix 对文件执行复杂连接

Unix 对文件执行复杂连接,unix,join,Unix,Join,我的文件~1k基本上如下所示: NAME1.txt NAME ATTR VALUE NAME1 x 1 NAME1 y 2 ... NAME2.txt NAME ATTR VALUE NAME2 x 19 NAME2 y 23 ... 其中ATTR collumn在everyfile中是相同的,name列只是文件名的某个版本。我想将它们合并成一个文件,如下所示: All_data.txt AT

我的文件~1k基本上如下所示:

NAME1.txt
NAME    ATTR    VALUE
NAME1   x       1      
NAME1   y       2
...

NAME2.txt
NAME    ATTR    VALUE
NAME2   x       19
NAME2   y       23
...
其中ATTR collumn在everyfile中是相同的,name列只是文件名的某个版本。我想将它们合并成一个文件,如下所示:

All_data.txt
ATTR    NAME1_VALUE    NAME2_VALUE    NAME3_VALUE ...
X       1              19             ...
y       2              23             ...
...
有没有简单的方法只使用命令行实用程序就可以做到这一点,或者我需要编写一些脚本


谢谢

你需要写一个脚本。 gawk显然是候选人 您可以使用FILENAME作为键,在BEGIN块中创建关联数组 属性值 值作为值。 然后在结束块中创建输出。 gawk可以使用*txt作为文件名,同时处理所有txt文件

期望有一个现成的命令来完成您想要的任务,这有点乐观。
很少有命令横向连接数据。

我最后编写了一些perl脚本来处理它。