Во-первых, вы не перебираете эти данные в цикле:Почему использование цикла оболочки для обработки текста считается плохой практикой?
Если в файле используются только запятые, разделяющие поля, то
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
... без использования явных циклов в оболочке.
вы можете сделать это с помощью этой команды :iptables -A INPUT -m mac --mac -source 12 :34 :56 :78 :9A :BC -j DROP просто замените 12 :34 :56 :78 :9A :BC на mac-адрес, который вы хотите заблокировать