Если у меня есть 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 $2}' list* | sort | uniq -d
out: 00:26:82:50:11:11
awk -F\; '{print $3}' list* | sort | uniq -d
out: 192.168.1.195
awk -F\; '{print $4}' list* | sort | uniq -d
out: COMPUTER3

Мой вопрос:

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

PD: без &&

Спасибо

1 ответ1

1

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

$ for field in 2 3 4; do cut -d\; -f${field} list* | sort | uniq -d; done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .