Это очень старый вопрос, но я отвечу на него для людей, которые прочтут его в будущем.
Если в URL-адресе изменяется только число, вы можете изменить это число, как указано ниже. Если это разные URL-адреса, вы можете использовать решение jasonwryan.
google-chrome --new-tab http://www.url{1..4}.com
Приведенная выше команда будет расширяться, как показано ниже, в новых вкладках Google Chrome:
http://www.url1.com http://www.url2.com http://www.url3.com http://www.url4.com
Обычно это решение загружает все страницы, где вам нужно будет сделать следующее, а затем пройти по страницам.
Вы можете направить свой find
в сортировку, которая сортирует в основном по количеству символов /
в имени пути . Например,
find alpha |
awk '{n=gsub("/","/",$0);printf "%04d/%s\n",n,$0}' |
sort -t/ |
sed 's|[^/]*/||'
Здесь используется awk
для префикса пути с количеством косых черт и sed
для удаления этого префикса в конце.
На самом деле, поскольку вы, вероятно, хотите, чтобы содержимое каталога alpha / charlie +
было указано после alpha / charlie
, вам нужно сказать sort -t / -k1, 1 -k2,2 -k3,3 -k4,4
до желаемой глубины.
Вы можете сделать это, используя только подстановочные знаки shell. Постройте шаблон с постепенно увеличивающимися уровнями каталогов.
pattern='*'
set -- $pattern
while [ $# -ne 1 ] || [ "$1" != "$pattern" ]; do
for file; do
…
done
pattern="$pattern/*"
set -- $pattern
done
Это пропускает точечные файлы. Используйте FIGNORE='.?(.)'
в ksh, shopt -s dotglob
в bash или setopt glob_dots
в zsh, чтобы включить их.
Предостережения:
Если вы хотите выбрать порядок каталогов и некаталогов, и производительность не критична, вы можете сделать два прохода и проверить [ -d "$file" ]
на каждом проходе.
# cat./bfind
#!/bin/bash
i=0
while results=$(find "$@" -mindepth $i -maxdepth $i) && [[ -n $results ]]; do
echo "$results"
((i++))
done
Это работает путем увеличения глубины find
и повторения, я думаю, что это может повторять результаты, но может быть легко отфильтровано
Другой ответ не основан на «поиске», а на bash -сначала используйте «длину родительского каталога», а затем сортируйте по альфа-каналу.
Ответ не совсем совпадает, так как в ваших результатах есть "charlie, bravo, delta", но мне интересно, должно ли это быть "bravo, charlie, delta" в альфа-порядке.
paths_breadth_first() {
while IFS= read -r line; do
dirn=${line%/*} ## dirname(line)
echo ${#dirn},$line ## len(dirn),line
done | sort -n | cut -d ',' -f 2-
}
Это производит
$ cat /tmp/yy | paths_breadth_first
alpha
alpha/bravo
alpha/charlie
alpha/delta
alpha/charlie/alpha
alpha/charlie/beta
alpha/charlie/gamma
alpha/charlie/phi