Преобразование столбцов в строки с помощью awk

У меня была причина разрешения имени для этой ошибки. У моего /etc/hosts был ошибочный IP-адрес для имени сервера (, а не для localhost ), вот так:

127.0.0.1     localhost
192.168.2.45  server.domain.com server

Но настроенный IP-адрес сервера (и DNS-имя, разрешенное с помощью команд host/dig ), были 192.168.2.47. Простая опечатка, вызванная предыдущей реконфигурацией IP. После исправления /etc/hosts туннельное соединение работало безупречно:

ssh user@server.domain.com -L 3456:127.0.0.1:5901

Странно, что реальный IP-адрес вызвал сбой, когда я использовал литеральный IP-адрес локального хоста для туннеля. Дистрибутив :Ubuntu 16.04 LTS.

0
08.09.2019, 16:01
2 ответа

Введите массив recпо 1-му полю, сохраните 2-е поле в массиве и, наконец, отсортируйте результаты.

awk '{ rec[$1]=rec[$1] " " $2 }
END { for (key in rec) print key rec[key] }
' file.txt | sort
1
28.01.2020, 02:29
awk '{a[$1]=a[$1] FS $2} END{for(i in a) print i a[i]}' file

Выход:

AA 1 2 3
B 4 4
C 5 6 7 8

Источник:https://stackoverflow.com/q/56716292/3776858


И снова в другую сторону:

awk '{for(i=2;i<=NF;i++){print $1,$i}}' file
1
28.01.2020, 02:29

Теги

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