Avahi является реализацией OpenSource Bonjour / Zeroconf.
выдержка - http://avahi.org/
avahi - это система, которая облегчает открытие услуг на местном Сеть через протокол MDNS / DNS-SD. Это позволяет подключить ваш ноутбук или компьютер в сеть и мгновенно сможет просматривать Другие люди, с которыми вы можете общаться, найдите принтеры для печати или найти файлы совместно используются. Совместимые технологии находятся в Apple Macos X (фирменные Bonjour и иногда Zeroconf).
A Подробнее подробное описание здесь вместе с статьей статьей Википедии . Статья Archlinux более полезная, указавая типы услуг, которые могут извлечь выгоду из Avahi.
В прошлом я обычно отключаю его на серверах, поскольку каждый сервер, который мне удалось в прошлом, явно рассказал о различных ресурсах, которые им нужно было доступу.
Две большие преимущества avahi - это разрешение и поиск принтеров, но на сервере, в управляемой среде, это мало значение.
Using awk
:
awk -F\* '/^BIG/ {gsub(/…/,""); print $NF}' file
A1001
8263-83313
8263-83313
Есть много способов сделать это. Например:
grep
grep -oP 'BIG \ * 20021208 \ * 00001 \ ** \ K [A-Z0-9 -] +' файл
-o
заставляет grep печатать только совпавшую часть строки, а -P
активирует Perl-совместимое регулярное выражение (PCRE) синтаксис. \ K
в PCRE приводит к тому, что все, что было сопоставлено до этого момента, отбрасывается (и поэтому не печатается из-за -o
). [A-Z0-9 -]
- это класс символов , который соответствует любой заглавной букве от A до Z, любому числу или -
и может повторяться до одного или более раз ( +
).
Если ваши целевые строки могут также содержать строчные буквы, просто запустите grep с флагом -i
или измените класс символов на [a-zA-Z0-9 -]
.
--- или ---
grep -oP 'BIG \ * 20021208 \ * 00001 \ ** \ K. + (? =…)' Файл
Это то же самое, что и выше, только здесь, есть положительный просмотр вперед ( (? =…)
), что означает, что . +
будет соответствовать, только если перед …
.
sed
sed -rn 's /… // g; s /.* BIG \ * 20021208 \ * 00001 \ ** // p;' файл
s / from / to /
- это оператор подстановки sed. Он заменяет с
на на
. Первый заменяет …
ничем, он удаляет их ( g
гарантирует, что это будет сделано для всех совпадений в строке). Второй удаляет все от начала строки (. *
) до BIG * 20021208 * 00001
( *
имеет особое значение в регулярных выражениях, поэтому он необходимо экранировать с помощью \ *
), затем 0 или более звездочек ( \ **
). Вместе они удаляют все, кроме того, что вы хотите.
-n
подавляет печать любого вывода. p
в конце второго оператора подстановки заставляет sed печатать любую ложь о том, где эта подстановка была успешной.
awk
awk -F '[*…]' '/ BIG \ * 20021208 \ * 00001 \ ** / {print $ (NF-1)}' файл
-F
устанавливает разделитель входных полей awk либо на *
, либо на …
. Это означает, что предпоследнее поле будет тем, которое вам нужно. Приведенная выше команда печатает его в строках, соответствующих BIG * 20021208 * 00001 *
.
Perl
perl -lne '/BIG\*20021208\*00001\**(.*)…/ && print "$ 1"' файл
-n
заставляет perl построчно читать вводимые данные и применять к нему сценарий, заданный параметром -e
. -l
добавляет символ новой строки к каждому вызову print
. Приведенная выше команда попытается сопоставить интересующую строку (см. Объяснение к примеру sed выше) и распечатать ее в случае успеха.
Вы также можете использовать тот же подход, что и в примере с awk:
perl -F '[*…]' -lane '/ BIG \ * 20021208 \ * 00001 \ ** / && print "$ F [$ #F] "'файл