Intereting Posts
Отсоединить от tmux и повернуть на ssh без удаления exec? Базовые разрешения для привода fat32 usb ldap_sasl_bind (SIMPLE): не удается связаться с ошибкой сервера LDAP (-1) при запуске openldap в контейнере докера под сервером ubuntu 16.04 не регистрировать события cron в auth.log Как использовать sed для вставки строки вверху моего файла? Spamassassin спам оценка и блок конфигурации? Установка вина из источника без доступа root Каковы способы создания собственного дистрибутива linux? zsh: отключить «файл существует:» предупреждение с перенаправлением root может войти только в режиме ограничения доступа Найти файлы с групповыми разрешениями более ограничительными, чем разрешения владельца Ошибка «плохого массива» при добавлении записи в ассоциативный массив Извлечение текста из текстового файла в bash Что такое переменная среды? rtlwifi / rtl8723befw.bin – Беспроводная остановка работает, тогда ноутбук должен перезагрузиться, чтобы получить беспроводную обратную связь

Команда, чтобы увидеть, находится ли слово в списке файлов и выводит, сколько файлов оно находится в

У меня уже есть аналогичный вопрос, но у меня есть небольшая разница. Я хочу посмотреть, сколько файлов содержит каждое слово. Когда файл имеет слово, он увеличивает счетчик и затем переходит к следующему файлу. Я не хочу знать, сколько раз слово появляется в каждом файле или имя файла, в котором он появляется, а просто счетчик, указывающий, сколько файлов это слово найдено в моих файлах. Например: у меня есть каталог с 10 файлами, каждый файл является рецептом, и я хочу посмотреть, сколько файлов содержит слово «соль». После выполнения команды он выдаст что-то вроде: 9 Salt . Это было обнаружено в 9 из 10 файлов. Я хочу это для каждого слова. Пока у меня это:

grep -l *| tr '[AZ]' '[az]' | tr -d '[:punct:]' | tr ' ' '\n' | sort | uniq | wc -l 

Буду признателен за любую оказанную помощь.

Допустим, вы создали папку рецептов в / home / username / recipes

Вот простой скрипт:

 #!/bin/bash count=0 dir=/home/username/recipes/ for recipe in $(ls $dir); do if [ $(cat $HOME/recipes/$recipe | grep $1) ]; then ((count++)) fi done echo "$count $1" 

После того, как вы сохранили файл, вы должны сделать его исполняемым. Сделайте это с помощью:

 chmod 740 script.sh 

Когда вы запустите его, включите аргумент, который вы ищете, например:

 ./script.sh salt 

Если он совпадает в двух файлах, он будет выводить:

 2 salt 

Если он совпадает в трех файлах, он будет выводить:

 3 salt 

и т.п.

Использовать grep -c

Например

 kaustubh@hacked:~/test$ cat a salt salt salt salt salt kaustubh@hacked:~/test$ cat b here sis salt their is salt and everywhere is salt kaustubh@hacked:~/test$ cat c salt hash hash salt sweet salt kaustubh@hacked:~/test$ cat d this is line salt 

Теперь я хочу, чтобы количество salt в файлах: grep -c salt *

 kaustubh@hacked:~/test$ grep -c salt * a:5 b:3 c:3 d:1