$ nslookup www.google.com Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: Name: www.google.com Address: 74.125.68.105 Name: www.google.com Address: 74.125.68.99 Name: www.google.com Address: 74.125.68.103 Name: www.google.com Address: 74.125.68.147 Name: www.google.com Address: 74.125.68.104 Name: www.google.com Address: 74.125.68.106$ ping 74.125.68.105 PING 74.125.68.105 (74.125.68.105) 56(84) bytes of data. 64 bytes from 74.125.68.105: icmp_seq=1 ttl=45 time=35.7 ms 64 bytes from 74.125.68.105: icmp_seq=2 ttl=45 time=35.2 ms 64 bytes from 74.125.68.105: icmp_seq=3 ttl=45 time=35.4 ms 64 bytes from 74.125.68.105: icmp_seq=4 ttl=45 time=35.6 ms 64 bytes from 74.125.68.105: icmp_seq=5 ttl=45 time=35.9 ms 64 bytes from 74.125.68.105: icmp_seq=6 ttl=45 time=35.2 ms 64 bytes from 74.125.68.105: icmp_seq=7 ttl=45 time=36.5 ms 64 bytes from 74.125.68.105: icmp_seq=8 ttl=45 time=35.3 ms 64 bytes from 74.125.68.105: icmp_seq=9 ttl=45 time=35.4 ms 64 bytes from 74.125.68.105: icmp_seq=10 ttl=45 time=35.6 ms ^C --- 74.125.68.105 ping statistics --- 10 packets transmitted, 10 received, 0% packet loss, time 9013ms rtt min/avg/max/mdev = 35.216/35.620/36.554/0.419 msСледующие диапазоны IP-адресов принадлежат Google:
64.233.160.0 - 64.233.191.255 66.102.0.0 - 66.102.15.255 66.249.64.0 - 66.249.95.255 72.14.192.0 - 72.14.255.255 74.125.0.0 - 74.125.255.255 209.85.128.0 - 209.85.255.255 216.239.32.0 - 216.239.63.255Как и многие популярные веб-сайты, Google использует несколько интернет-серверов для обработки входящих запросов к своему веб-сайту. Вместо вводаhttp://www.google.com/в браузер человек может ввести http ://, а затем один из вышеуказанных адресов, например:
Предположим, вы хотите переименовать все файлы, в имени которых есть цифра, дважды содержащая подстроку ---
, за которой следует .mp4
в самом конце имени. Кроме того, если вы хотите удалить бит между двумя подстроками ---
, включая сами эти подстроки:
find. -type f -name '[[:digit:]]*---*---.mp4' -exec sh -c '
for pathname do
mv -i "$pathname" "${pathname%---*---.mp4}.mp4"
done' sh {} +
Это находит все обычные файлы с именами, соответствующими заданному шаблону, в текущем каталоге или ниже, а затем удаляет строку суффикса, соответствующую ---*---.mp4
, и снова добавляет суффикс .mp4
.
Без использованияfind
(вbash
):
shopt -s globstar nullglob dotglob
for pathname in./**/[[:digit:]]*---*---.mp4; do
[[ ! -f $pathname ]] && continue
mv -i "$pathname" "${pathname%---*---.mp4}.mp4"
done
Это по сути то же самое, что и команда find
, но также переименовывает символические ссылки. Три параметра оболочки, которые устанавливаются в начале, включают шаблон подстановки **
, используемый для рекурсивного сопоставления вниз в подкаталоги (globstar
), гарантируют, что не соответствующие -шаблоны удаляются, а не остаются нераскрытыми (nullglob
), и гарантируют, что что подстановочные шаблоны соответствуют скрытым именам(dotglob
).
В оболочке zsh
:
for pathname in./**/[[:digit:]]*---*---.mp4(.ND); do
mv -i $pathname ${pathname%---*---.mp4}.mp4
done
Здесь точка в квалификаторе glob (.ND)
заставляет предыдущий шаблон соответствовать только обычным файлам, в то время как N
и D
действуют как включение nullglob
и dotglob
в bash
, но только для этого конкретный узор.
Используя find(1)
и mv(1)
плюс P.E. оболочки. расширение параметра.
find. -type f -name '1*Introduction*.mp4' -exec sh -c '
for f; do echo mv -v "$f" "${f%%-*}.mp4"
done' _ {} +
Точное совпадение будет
find. -type f -name '1. Introduction--- \[ FreeCourseWeb.com \] ---.mp4' -exec sh -c '
for f; do echo mv -v "$f" "${f%%-*}.mp4"
done' _ {} +
echo
Если вас устраивает вывод, чтобы он мог переименовывать файлы. Использование инструмента rename
из пакета util-linux
(, иногда называемогоrename.ul
)иfind
:
find. -type f -name '*--- \[ FreeCourseWeb.com \] ---.mp4'\
-exec rename -i -- '--- [ FreeCourseWeb.com ] ---' '' {} \;
Опция -i
запрашивает разрешение на перезапись существующих файлов.
Использование Perl-скрипта Ларри Уолла rename
иfind
:
find. -type f -name '*--- \[ FreeCourseWeb.com \] ---.mp4'\
-exec rename 's/--- \[ FreeCourseWeb.com \] ---//' {} \;
Существующие файлы не перезаписываются по умолчанию, если не используется опция -f
/ --force
. Вместо этого вы увидите сообщение об ошибке ... already exists
.