我有一个像这样的文本文件。
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
答案 0 :(得分:1)
这应该这样做:
awk 'NR%2==1 {line=$0; next} {printf("%-20s%-4s%s\n", line, $2, $3)}' file
这假设线条与第一个字段成对出现,如您所示,并且没有空行。
答案 1 :(得分:0)
使用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