**/*(D)
(короткий для (*/)#*(D)
) включает dotfiles и dotdirs, как уже сказано.
Если Вы хотите исключить .hg
каталоги на каждом уровне, Вам нужно:
(^.hg/)#^.hg(D)
(Вам нужно setopt extendedglob
для ^
оператор)
Как уже сказано, ~pattern, исключит записи (на основе того, соответствует ли их полное расширение "шаблону" после того, как список был сгенерирован, так не остановит его для убывания в subdirs).
comm
ожидает отсортированные файлы, где каждое слово должно быть на одной строке (это - сплошные линии, которые сравнены).
Таким образом, это
(export LC_ALL=C
comm -23 <(grep -Po '\S+' file1 | sort) <(grep -Po '\S+' file2 | sort))
(принятие GNU grep
с поддержкой PCRE и оболочкой поддержка обрабатывают замену как ksh93
, zsh
или bash
).
Фиксация локали к C для выполнения байта к сравнению байта для sort
и comm
.
-23': not a valid identifier -bash: export:
/dev/fd/63': не допустимый идентификатор - удар: экспорт: '/dev/fd/62': не допустимый идентификатор – hdb004 29.10.2013, 12:37comm
. Это находится в подоболочке для ограничения объема переменного – Stéphane Chazelas 29.10.2013, 12:40