Как сортировать URL-адреса на основе пути / уровней? - PullRequest
0 голосов
/ 20 февраля 2019

Я хочу отсортировать URL-адреса на основе пути / уровней.Как мне это сделать ?(Это может быть онлайн-инструмент / скрипт PHP / bash / linux), все в порядке.

example.com/a
example.com/b
example.com/c
example.com/aaa/1
example.com/aaa/2
example.com/aaa/3
example.com/aaa/bbb/apath
example.com/aaa/bbb/bpath
example.com/aaa/bbb/cpath
example.com/aaa/bbb/path/1
example.com/aaa/bbb/path/2

1 Ответ

0 голосов
/ 20 февраля 2019

I echo - ваши входы, переупорядоченные, в цикл.Я назначил строку ввода второй клавише, чередовал неделитеры и добавил ее, затем напечатал новую строку.

Я передал цикл в sort, а отсортированный вывод - вsed, чтобы убрать предварительно добавленный ключ.

Я не очень много использовал конструкцию $ {x ///}, так что, вероятно, есть более чистый способ сделать это, чем это преобразование в подчеркивание, и я 'Я с нетерпением жду этого, LOL

$: echo "example.com/a
example.com/c
example.com/aaa/bbb/path/1
example.com/aaa/3
example.com/aaa/bbb/apath
example.com/aaa/2
example.com/aaa/bbb/bpath
example.com/aaa/1
example.com/aaa/bbb/cpath
example.com/b
example.com/aaa/bbb/path/2" | 
  while read line
  do key=${line//\//_}
     key=${key//[^_]/}
     printf "$key\t$line\n"
 done | sort |sed 's/^_*          //'
example.com/a
example.com/b
example.com/c
example.com/aaa/1
example.com/aaa/2
example.com/aaa/3
example.com/aaa/bbb/apath
example.com/aaa/bbb/bpath
example.com/aaa/bbb/cpath
example.com/aaa/bbb/path/1
example.com/aaa/bbb/path/2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...