коммуникация, не работающая для нахождения уникальные слова к file1 из двух файлов

**/*(D) (короткий для (*/)#*(D)) включает dotfiles и dotdirs, как уже сказано.

Если Вы хотите исключить .hg каталоги на каждом уровне, Вам нужно:

(^.hg/)#^.hg(D)

(Вам нужно setopt extendedglob для ^ оператор)

Как уже сказано, ~pattern, исключит записи (на основе того, соответствует ли их полное расширение "шаблону" после того, как список был сгенерирован, так не остановит его для убывания в subdirs).

0
29.10.2013, 14:21
1 ответ

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.

3
28.01.2020, 02:28
  • 1
    (экспортируют коммуникацию LC_ALL=C-23 <(grep - По '\S +' tekst.txt | вид) <(grep - По '\S +' woordenlijst.txt | вид)) - удар: экспорт: -23': not a valid identifier -bash: export: /dev/fd/63': не допустимый идентификатор - удар: экспорт: '/dev/fd/62': не допустимый идентификатор –  hdb004 29.10.2013, 12:37
  • 2
    @hdb004, это - 2 строки, первый устанавливает LC_ALL, вторые вызовы comm. Это находится в подоболочке для ограничения объема переменного –  Stéphane Chazelas 29.10.2013, 12:40

Теги

Похожие вопросы