input.txt(制表符分隔)
TTTTOTTT00000000008 RTTTT899 5.00E-28
TTTTOTTT00000000046 RTTTWRR 3.00E-31
TTTTOTTT00000000051 2.00E-11
TTTTOTTT00000000051 7.00E-12
TTTTOTTT00000000054 5.00E-22
TTTTOTTT00000000061 YTRYR 1.00E-11
TTTTOTTT00000000078 ETNRR8 6.00E-17
TTTTOTTT00000000174 TYTYT 1.00E-11
TTTTOTTT00000000203 UUUE 9.00E-20
我的文件列混淆了。在此文件(input.txt)中。第 3 列有空格,列应填充第 2 列行,第 2 列行应替换为无
输出.txt(制表符分隔)
TTTTOTTT00000000008 RTTTT899 5.00E-28
TTTTOTTT00000000046 RTTTWRR 3.00E-31
TTTTOTTT00000000051 none 2.00E-11
TTTTOTTT00000000051 none 7.00E-12
TTTTOTTT00000000054 none 5.00E-22
TTTTOTTT00000000061 YTRYR 1.00E-11
TTTTOTTT00000000078 ETNRR8 6.00E-17
TTTTOTTT00000000174 TYTYT 1.00E-11
TTTTOTTT00000000203 UUUE 9.00E-20
答案1
awk -v 'OFS=\t' 'NF == 2 { print $1, "none", $2; next } 1' input.txt > output.txt
根据输入文件的特征进行调整。我假设只有 2 个字段的每一行都应该插入一个“none”。否则,所有其他行都将不加改变地通过(1
最后的目的)。
答案2
awk -v OFS="\t" 'NF==2{$2="none\t"$2}1' test_in.txt
它不是为修改的行提供单独的打印语句,而是在必要时修补字段并流式传输要由同一语句打印的更正行。