Сортировка IP-адресов, связанных со строкой в ​​текстовом файле в Linux

С zshпроще:

except=(file1 file2 notme.txt)
all=(*)
only=(${all:|except})
ls -ld -- $only

Мнемоника для ${all:|кроме}: элементы из $allbarте из $кроме.

Вы также можете проверить, находятся ли файлы в массиве $exceptкак часть квалификатора glob:

ls -ld -- *.txt(^e:'((except[(Ie)$REPLY]))':)

Или с помощью функции:

in_except() ((except[(Ie)${1-$REPLY}]))
ls -ld -- *.txt(^+in_except)
0
07.09.2017, 10:45
3 ответа

Использование-V("сортировки по версии" ), реализовано большинствомsort:

$ sort -t '=' -k2 -V file
string_D=10.a.y.10
string_C=10.a.y.104
string_A=10.a.y.155
string_E=10.a.y.198
string_B=10.a.y.212
string_Y=10.b.x.10
string_X=10.b.x.104
string_U=10.b.x.155
string_Z=10.b.x.198
string_V=10.b.x.212

Если a=15иb=140:

$ sort -t '=' -k2 -V file
string_D=10.15.y.10
string_C=10.15.y.104
string_A=10.15.y.155
string_E=10.15.y.198
string_B=10.15.y.212
string_Y=10.140.x.10
string_X=10.140.x.104
string_U=10.140.x.155
string_Z=10.140.x.198
string_V=10.140.x.212

-k2с -t '='заставляет sortрассматривать данные после =как ключ сортировки.

2
28.01.2020, 02:33

С помощью команды sort:

sort -t'=' -k2 file
  • -t'='-=знак как разделитель полей

  • -k2-сортировка по 2-му полю

Выход:

string_D=10.a.y.10
string_C=10.a.y.104
string_A=10.a.y.155
string_E=10.a.y.198
string_B=10.a.y.212
string_Y=10.b.x.10
string_X=10.b.x.104
string_U=10.b.x.155
string_Z=10.b.x.198
string_V=10.b.x.212
1
28.01.2020, 02:33

Используйте:

sort -t. -nk1,1 -nk2,2 -nk3,3 -nk4,4 file

-n-сортировка по номерам

Вам необходимо выполнить сортировку по каждому из четырех полей .

0
28.01.2020, 02:33

Теги

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