Несколько способов:
awk
awk '!a[$1]++' file
Это очень сжатый способ написания этого:
awk '{if(! a[$1]){print; a[$1]++}}' файла.
Итак, если текущее первое поле ($1
) не находится в массиве a
, выведите строку и добавьте 1-ое поле к a
. В следующий раз, когда мы увидим это поле, оно будет в массиве и поэтому не будет выведено.
Perl
perl -ane '$k{$F[0]}++ или print' file
или
perl -ane 'print if !$k{$F[0]}++' file
Это в основном то же самое, что и awk
. -n
заставляет perl читать строку за строкой входной файл и применять к каждой строке скрипт, предоставленный -e
. -a
автоматически разделит каждую строку на пробелы и сохранит полученные поля в массиве @F
. Наконец, первое поле добавляется к хэшу %k
и если его еще нет, то выводится строка. То же самое можно записать как
perl -e 'while(){
@F=сплит(/\s+/);
print unless defined($k{$F[0]}));
$k{$F[0]}++;
}' файл
Coreutils
rev файл | uniq -f 1 | rev
Этот метод работает, сначала перевернув строки в файле
так, что если строка равна 12 345, то теперь будет 543 21. Затем мы используем uniq -f 1
, чтобы проигнорировать первое поле, то есть столбец, в котором находится 543. В файле есть поля
. Использование uniq
в данном случае позволяет отфильтровать все дублирующиеся строки, сохраняя только 1 из каждой. Наконец, мы возвращаем строки в исходный порядок с другим обратным.
GNU сортирует (как предлагает по @StéphaneChazelas)
сортирует -buk1,1.
Флаг -b
игнорирует ведущие пробелы, а -u
означает, что печатаются только уникальные поля. Хитрым битом является -k1,1
. Флаг -k
устанавливает сортировку поля. Он принимает общий формат -k POS1[,POS2]
, что означает, что при сортировке следует смотреть только на поля -k
через POS2. Таким образом, -k1,1
означает смотреть только на 1-ое поле.
В зависимости от Ваших данных, Вы, возможно, захотите добавить одну из этих опций:
-g, --general-numeric-sort
сравнение по общему числовому значению
-n, -цифровой
сравнение по строковому числовому значению
Самый простой способ (если я понимаю, что вы спрашиваете), это с:
ifconfig | grep inet
и в выходе вы видите, вы можете найти свои интерфейсы для сервера IP, Web_A и Web_B