小编kmw*_*kmw的帖子

如何指导我的 awk 命令在第 2 列上工作

我希望这个awk命令用制表符替换第 2 列的最后一个下划线。现在,它用制表符替换每行中的最后一个下划线,请注意,每行的列中可能有不同数量的下划线。我已经尝试了很多方法来指示命令仅在第 2 列上工作。我知道我已经很接近了,有人可以做最后的调整吗?

制表符分隔的示例文件:

OTU1 this_is_the_second_column 100 0 450 this_is_the_sixth_column 1 5 3.2
OTU2 this_is_another_column_to_parse 103 4 650 this_is_another_test_string_too 4 7 4.6
Run Code Online (Sandbox Code Playgroud)

它应该是什么样子:

OTU1 this_is_the_second column 100 0 450 this_is_the_sixth_column 1 5 3.2
OTU2 this_is_another_column_to parse 103 4 650 this_is_another_test_string_too 4 7 4.6
Run Code Online (Sandbox Code Playgroud)

这是我当前的代码:

gawk -F'\t' -v OFS='\t' 'BEGIN{FS=OFS="_"}{last=$NF;NF--;print $0"\t"last}' test1.tab > test1_reformat.tab
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏

谢谢

awk

3
推荐指数
1
解决办法
333
查看次数

标签 统计

awk ×1