#awk
#awk
Вопрос:
У меня есть текстовый файл, подобный этому.
4IGL A 1488
4IGL B 690
4IU2 A 212
4IU2 B 243
4IYP B 222
4IYP C 151
Я хотел бы упорядочить пары строк в одной строке. Как я могу сделать это с помощью awk?
Желаемый результат
4IGL A 1488 B 690
4IU2 A 212 B 243
4IYP B 222 C 151
Ответ №1:
Это должно сделать это:
awk 'NR%2==1 {line=$0; next} {printf("%-20s%-4s%sn", line, $2, $3)}' file
Предполагается, что строки отображаются парами с одним и тем же первым полем, как вы показали, и что пустых строк нет.
Ответ №2:
Использование sed:
sed -n 'N;s/r*n[^ ]* / /p' input
Дает:
4IGL A 1488 B 690
4IU2 A 212 B 243
4IYP B 222 C 151
Вы можете добавить команду столбца для лучшего внешнего вида:
sed -n 'N;s/r*n[^ ]* / /p' input | column -t
Создание:
4IGL A 1488 B 690
4IU2 A 212 B 243
4IYP B 222 C 151