С awk
:
awk -F: 'NR==FNR{a[$1]=$2;next}a[$2]{print $1":"$2":"a[$2]}' file1 file2
Вывод:
bart:29482164591748:computer
smithers:68468468468464:keyboard
lisa:68468468468464:keyboard
После редактирования вопроса:
awk -F: 'NR==FNR{a[$2]=$1;next}a[$1]{print a[$1]":"$1":"$2}' file1 file2
Вывод:
lisa:68468468468464:keyboard
bart:29482164591748:computer
Решено!
Как указал @Alexander, проблема заключалась в том, что SELinux блокировал порт, но я получаю журналы в 515, поэтому я не могу его изменить.
Решение состояло в том, чтобы установить SELinux с enforcing
на permissive
с помощью setenforce 0
. Кроме того, я изменил файл конфигурации, чтобы применить эту конфигурацию после перезапуска, изменив строкуSELINUX=permissive
Я предполагаю, что проблема связана с портом номер 515, заблокированным SELinux. Порт системного журнала по умолчанию — 514.
# semanage port -l
...
syslogd_port_t tcp 601, 20514
syslogd_port_t udp 514, 601, 20514
...
printer_port_t tcp 515
Если вы хотите запустить syslog -ng на другом порту, вы должны изменить метки портов.(semanage port --help
вам помогут)