Подсчитать уникальные слова во всех текстовых файлах в каталоге и удалить те, у которых меньше 2? - PullRequest
0 голосов
/ 21 ноября 2018

Это дает мне счет.Но как удалить эти файлы с числом <2? </p>

$ cat ./a1esso.doc | grep -o -E '\w+' | sort -u -f | wc --words
1
$ cat ./a1brit.doc | grep -o -E '\w+' | sort -u -f | wc --words
4

Как получить имена тех файлов, у которых меньше 2, чтобы мы могли их удалить?Я буду сканировать миллионы файлов.Команда find может найти все файлы, но, по-видимому, имя файла необходимо распространять по конвейеру.В правом конце можно использовать команду rm.

Спасибо за чтение.

Обновление:

В правильном ответе будет использоваться входной конвейер для подачиимена файлов.Это не подлежит обсуждению.Эта программа не предназначена для использования с одним входным файлом, показанным в примере, но она поступает из динамического списка многих файлов.

Фильтрующее устройство для определения имен файлов, которые соответствуют критерию,также присутствовать в принятом ответе.Это также не подлежит обсуждению.

1 Ответ

0 голосов
/ 21 ноября 2018

Вы можете сделать это ...

 test $(grep -o -E '\w+' ./a1esso.doc | sort -u -f | wc --words) -lt 2 && rm alesso.doc

Обновление: удалено бесполезного кота согласно комментарию Дэвида.

...