как распечатать файл с помощью awk

ВВОД (с разделителями табуляцией)

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

Но кажется не очень хорошим.

0
06.11.2016, 11:26
2 ответа

try

awk -F'\t '{print $3,$4,$5,$1,$2,$6}' input > output

это установит FS (разделитель полей) для IFS (вход) и OFS (выход).

Я также поменял местами $1 и $2

2
28.01.2020, 02:47

Используйте пробел в качестве разделителя полей и вкладку между полями. Я получил идеальную ориентацию.

awk -F" " '{print $3"\t"$4"\t"$5"\t"$2"\t"$1"\t"$6}' input.txt > output.txt

выход:

Chr1     143564  145684  AT1G01370   HTR12   +
Chr1     316128  319650  AT1G01920   SDG42   +
Chr1     544783  549202  AT1G02580   SDG5    +
0
29.09.2021, 16:14

Теги

Похожие вопросы