入力(タブ区切り)
HTR12 AT1G01370 Chr1 143564 145684 +
SDG42 AT1G01920 Chr1 316128 319650 +
SDG5 AT1G02580 Chr1 544783 549202 +
出力(タブ区切り)
Chr1 143564 145684 HTR12 AT1G01370 +
Chr1 316128 319650 SDG42 AT1G01920 +
Chr1 544783 549202 SDG5 AT1G02580 +
私の解決策は
awk -v OFS="\t" '{print $3,$4,$5,$2,$1,$6}' input > output
でも良くないようです。
ベストアンサー1
努力する
awk -F'\t' -v OFS='\t' '{print $3,$4,$5,$1,$2,$6}' input > output
これにより、両方に対してフィールド区切り記号(FS)が設定されます。
-F'\t'
IFS(入力)、-v OFS='\t'
OFS(出力)。
私も交換し$1
て$2
サンプルファイルを追加しました。出力は次のようになります。
awk -F'\t' -v OFS='\t' '{print $3,$4,$5,$1,$2,$6}' se.txt
Chr1 143564 145684 HTR12 AT1G01370 +
Chr1 316128 319650 SDG42 AT1G01920 +
(od -c
チェックタブに追加)
awk -F'\t' -v OFS='\t' '{print $3,$4,$5,$1,$2,$6}' se.txt | od -c
0000000 C h r 1 \t 1 4 3 5 6 4 \t 1 4 5 6
0000020 8 4 \t H T R 1 2 \t A T 1 G 0 1 3
0000040 7 0 \t + \n C h r 1 \t 3 1 6 1 2 8
0000060 \t 3 1 9 6 5 0 \t S D G 4 2 \t A T
0000100 1 G 0 1 9 2 0 \t + \n
0000113