【问题标题】:Select first two columns from tab-delimited text file and and substitute with '_' character从制表符分隔的文本文件中选择前两列,并用“_”字符替换
【发布时间】:2020-05-26 12:40:15
【问题描述】:

我有一个示例输入文件如下

RF00001 1c2x    C   3   118 77.20   1.6e-20 1   119 f29242
RF00001 1ffk    9   1   121 77.40   1.4e-20 1   119 8e2511
RF00001 1jj2    9   1   121 77.40   1.4e-20 1   119 f29242
RF00001 1k73    B   1   121 77.40   1.4e-20 1   119 8484c0
RF00001 1k8a    B   1   121 77.40   1.4e-20 1   119 93c090
RF00001 1k9m    B   1   121 77.40   1.4e-20 1   119 ebeb30
RF00001 1kc8    B   1   121 77.40   1.4e-20 1   119 bdc000

我需要从文本文件中提取第二列和第三列,并将选项卡替换为“_”

所需的输出文件:

1c2x_C  
1ffk_9  
1jj2_9  
1k73_B  
1k8a_B  
1k9m_B  
1kc8_B

我可以通过以下方式打印两列:

awk -F" " '{ print $2,$3 }' input.txt

但无法使用以下命令将选项卡替换为“_”

awk -F" " '{ print $2,'_',$3 }' input.txt

【问题讨论】:

    标签: shell unix awk sed grep


    【解决方案1】:

    请您尝试关注一下。

    awk '{print $2"_"$3}' Input_file
    

    第二个解决方案:

    awk 'BEGIN{OFS="_"} {print $2,$3}' Input_file
    

    第三种解决方案:添加sed 解决方案。

    sed -E 's/[^ ]* +([^ ]*) +([^ ]*).*/\1_\2/' Input_file
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-02
      • 2021-04-29
      • 1970-01-01
      • 2017-02-24
      • 1970-01-01
      相关资源
      最近更新 更多