如何对多个文件使用剪切命令并将结果粘贴到不同的文件中

问题描述

你能帮我如何在多个文件中剪切多个字段并将结果粘贴到另一个文件中

       file1:
       A Pass Fail
       B Pass Fail
       C Fail Fail
       D Pass Pass

      file2:
      A Pass Pass
      B Fail Pass
      C Pass Pass
      D Pass Pass

      file 3:
      A  Fail Fail
      B  Pass Pass
      C  Pass Fail
      D  Pass Pass

    Expected:
    A Pass Fail Pass Pass Fail Fail
    B Pass Fail Fail Pass Pass Pass
    C Fail Fail Pass Pass Pass Fail
    D Pass Pass Pass Pass Pass Pass

我尝试了以下选项,但它不起作用 cut -f 2-3 file2 | cut -f 2-3 file3 |粘贴文件 1 -

解决方法

paste file1.txt file2.txt file3.txt | tr "\t" " " | cut -f1,2,3,5,6,8,9 -d" "

这将导致:

A Pass Fail Pass Pass Fail Fail
B Pass Fail Fail Pass Pass Pass
C Fail Fail Pass Pass Pass Fail
D Pass Pass Pass Pass Pass Pass

简短说明:

paste file1.txt file2.txt file3.txt 将合并您的文件标签。

A Pass Fail     A Pass Pass     A Fail Fail
B Pass Fail     B Fail Pass     B Pass Pass
C Fail Fail     C Pass Pass     C Pass Fail
D Pass Pass     D Pass Pass     D Pass Pass

tr "\t" " " 将制表符替换为空格。然后 cut -f1,9 -d" " 将获得您想要的列。

,

awk 替代方案:

awk '{ map[$1]=map[$1]" "$0 } END { for (i in map) { gsub(" "i,"",map[i]);print i" "map[i] } }' file1 file2 file3

创建一个名为 map 的数组,以第一个空格分隔的字段作为索引,并附加每个文件的行作为值,以空格分隔。在处理文件结束时,遍历映射数组,使用 gsub 从值中删除索引,然后打印结果值。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...