Я бьюсь головой о стену, пытаясь понять, что делаю не так. Мой код в настоящее время таков:
#!\bin\sh
read -p "Enter Third Octet Here " octet
perl -ne 'while(/[0-9A-F]{2}[:-][0-9A-F]{2}[:-]("$ENV{'$octet'}")[:-][0-9A-F]{2}[:-][0-9A-F]{2}[:-][0-9A-F]{2}(?=((\s)|(\/)))/ig){print "$&\n";}' manuf.txt
perl -ne 'while(/[0-9A-F]{2}[:-][0-9A-F]{2}[:-]("$ENV{'$octet'}")(?=((\s)|(\/)))/ig){print "$&\n";}' manuf.txt
Я пытаюсь идентифицировать третий октет MAC-адреса в списке поиска производителя (https://code.wireshark.org/review/gitweb?p=wireshark.git;a=blob_plain;f=manuf). Я хочу, чтобы сценарий передавал переменную 55, B3, b3, FF в однострочник perl и вставлял ее в регулярное выражение MAC, а затем выводил совпадения построчно. Пока что без переменной он найдет каждый MAC-адрес в файле, обозначен ли он символом: или a - и является ли это строкой из 6 октетов или строк из 3 октетов. с переменной env ничего не возвращает. Я все перепробовал и вроде ничего не работает. Я ударился о стену
Я также хочу иметь возможность выполнять вторичное сопоставление на основе 3-го и 4-го октета и третичное сопоставление на основе 3-го, 4-го и 5-го октетов, но это далеко не просто заставить его работать.