Как настроить фильтрацию MAC-адресов в Linux?

Во-первых, вы не перебираете эти данные в цикле:Почему использование цикла оболочки для обработки текста считается плохой практикой?

Если в файле используются только запятые, разделяющие поля, то

sort -t ',' -k3n -o file.output file.input

будет сортировать данные численно по числу в третьем столбце. Вывод будет записан в file.output.

Для заданных данных file.outputбудет выглядеть как

Jennifer Lelan,Childhood dreams,97546766544237
Adam Barry,The Armies,97564325678855
Donald Smith,Fire Lands,97868545414459

Для дальнейшей обработки этих данных можно рассмотреть возможность использования программы awk. Поскольку вы не указали, какую обработку вы хотели бы выполнить, следующее просто извлекает данные в переменные (, которые на самом деле не нужны )для каждой строки, и печатает их:

sort -t ',' -k3n file.input |
awk -F ',' '{ author=$1; title=$2; isbn=$3;
              printf("Author: %s\nTitle: %s\nISBN: %s\n",
                     author, title, isbn) }'

Обратите внимание, что в этом случае нет необходимости хранить отсортированные данные в промежуточном файле.

Вывод с учетом данных в вопросе:

Author: Jennifer Lelan
Title: Childhood dreams
ISBN: 97546766544237
Author: Adam Barry
Title: The Armies
ISBN: 97564325678855
Author: Donald Smith
Title: Fire Lands
ISBN: 97868545414459

Для получения данных в красиво выглядящих столбцах и с тире в номере ISBN вам не нужно awk. Далее используется sedдля форматирования номеров ISBN и columnдля форматирования столбцов :

.

sort -t ',' -k3n file.input |
sed -E -e 's/,([0-9]{3})([0-9]{4})([0-9]{5})/,\1-\2-\3-/' |
column -s ',' -t

Вывод будет

Jennifer Lelan  Childhood dreams  975-4676-65442-37
Adam Barry      The Armies        975-6432-56788-55
Donald Smith    Fire Lands        978-6854-54144-59

Обратите внимание, что номера ISBN выглядят немного шатко. Это потому, что они состоят из 14 цифр. Настоящие номера ISBN состоят из 10 или 13 цифр , и приведенный выше код предполагает, что они состоят из 13 цифр (или не менее 12 цифр ).

Чтобы добавить заголовки столбцов:

sort -t ',' -k3n file.input |
{ echo 'Author,Name of book,ISBN'
  sed -E -e 's/,([0-9]{3})([0-9]{4})([0-9]{5})/,\1-\2-\3-/'
} |
column -s ',' -t

Что производит

Author          Name of book      ISBN
Jennifer Lelan  Childhood dreams  975-4676-65442-37
Adam Barry      The Armies        975-6432-56788-55
Donald Smith    Fire Lands        978-6854-54144-59

... без использования явных циклов в оболочке.

0
21.09.2020, 14:04
1 ответ

вы можете сделать это с помощью этой команды :iptables -A INPUT -m mac --mac -source 12 :34 :56 :78 :9A :BC -j DROP просто замените 12 :34 :56 :78 :9A :BC на mac-адрес, который вы хотите заблокировать

0
18.03.2021, 23:03

Теги

Похожие вопросы