упорядочивание пар строк в одной строке

#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