findstr: файлы для поиска не имеют разрывов строк - PullRequest
1 голос
/ 17 июня 2019

У меня есть несколько файлов, которые содержат одну длинную строку. Я хочу найти каждый файл и посчитать количество вхождений строки.
На данный момент мой единственный вариант - Bash-скрипт.

Findstr поисков в строке. Учитывая, что в каждом файле есть только одна строка, это мне не помогает. Я немного поискал на этом сайте и гуглил, но не могу найти ответ.

Вот один пример, который я пробовал.

Это просто выводит на печать каждый файл целиком:

findstr /C:Bob *.txt

Что бы я хотел увидеть?

File1.txt 14

File2.txt 27

File3.txt 136

и т.д ....

1 Ответ

1 голос
/ 17 июня 2019

Примерно так:

find * -printf 'echo "$(grep -o "hello" %p | wc -l) %p";' | sh

output:
3 newfile
2 somefile

Альтернатива, если выше не работает

for var in `ls`;do echo $var; grep -o "hello" $var|wc -l;done

Output:
newfile
3
somefile
2
some.py
0

Если предположить, что wc отсутствует, как предлагается в комментариях к этому ответу, приведенная ниже команда может бытьused.

for var in `ls`;do echo $var;grep -o "hello" $var|grep -c "hello";done

Будет выдавать тот же вывод, что и последняя команда

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...