Эта команда выбирает каждого путь и усекает его к n
папки глубоко (определенный в \{0,n\}
раздел sed
команда и {0,n}
раздел команды grep). Это затем передается по каналу в uniq
отфильтровывать дубликаты.
rsync -nPaAXz src_dir dst_dir | sed -n 's@^\(\([^/][^/]*/\)\{0,2\}\).*@\1@p' | uniq
То же самое может также быть достигнуто с помощью grep
:
rsync -nPaAXz src_dir dst_dir | grep -oE "^([^/]+/){0,2}"
Хотя вышеупомянутая работа привычки с GNU grep
версии < 2.5.3
из-за ошибки.
Так как Вы не предоставили свой код Python (или независимо от того, что Kiki и Kodos), затем, может быть трудно сказать наверняка, но мое предположение - то, что синтаксис шаблона для Kiki и Kodos отличается от Perl в этом, Вам не нужны разделители наклонной черты вправо. Например, эквивалент в Python был бы:
import re
m = re.search('(\d+)', "[2004/04/13] The date of this article.")
print m.group(0)
Заметьте, что шаблон не включает наклонные черты вправо.
В Perl важно понять, что regex оператор не m
, это - двойные наклонные черты - /..../
(где ....
на самом деле Ваше регулярное выражение). m
является дополнительным, если Вы используете /
.
Следующее является всем эквивалентом:
$mystring =~ m/(\d+)/;
$mystring =~ /(\d+)/;
$var = '(\d+)';
$mystring =~ /$var/;
m//
это - оператор, но m является дополнительным при некоторых обстоятельствах.
– Mat
13.05.2012, 16:24