показать повторяющиеся данные с помощью awk print $2,$3,$4 в одной строке

Если у меня есть 2 списка, которые содержат следующее (примеры):

list1
x;00:26:82:50:00:00;192.168.1.195;COMPUTER1
x;00:26:82:50:11:11;192.168.1.195;COMPUTER2
x;00:26:82:50:22:22;192.168.1.196;COMPUTER3

list2
x;00:26:82:50:11:11;192.168.1.197;COMPUTER3

когда я запускаю эти команды, покажите мне дубликаты:

awk -F; '{print }' list* | sort | uniq -d
out: 00:26:82:50:11:11
awk -F; '{print }' list* | sort | uniq -d
out: 192.168.1.195
awk -F; '{print }' list* | sort | uniq -d
out: COMPUTER3

мой вопрос:

Как я могу запустить команду (awk-F;..etc) на одной строке и получить те же результаты?

PD: Без &&

спасибо

5
задан bdc
09.12.2022 18:12 Количество просмотров материала 2574
Распечатать страницу

1 ответ

вы можете сделать это с помощью простого скрипта прямо из командной строки, используя cut(1) вместо awk(1), например:

$ for field in 2 3 4; do cut -d\; -f${field} list* | sort | uniq -d; done
1
отвечен ccs242 2022-12-11 02:00

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

awk
bash
bash-scripting
command-line
linux
Вверх