
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つのフィールドしかないすべての行に「なし」を挿入する必要があるとします。それ以外の場合、他のすべての行は変更されずに通過します(1
最終目標)。
答え2
awk -v OFS="\t" 'NF==2{$2="none\t"$2}1' test_in.txt
変更された行に別々の印刷ステートメントを提供するのではなく、必要に応じてフィールドにパッチを適用して、同じステートメントで印刷するように変更された行をストリーミングします。