Подсчет вхождений символа в текстовом файле

шаг 1: файл server.php в корневой директории переименовывается как index.php

Шаг 2:

копирует файл .htaccess из общего каталога в root direct

125
задан Rob Hruska 21 October 2009 в 21:24
поделиться

4 ответа

Как насчет этого:

fgrep -o f <file> | wc -l

Примечание: помимо того, что намного проще запоминать / дублировать и настраивать, это примерно в три раза (извините, редактировать! Провалил первый тест) быстрее, чем ответ Вереба.

173
ответ дан 24 November 2019 в 00:52
поделиться
echo $(cat <file>  | wc -c) - $(cat <file>  | tr -d 'A' | wc -c) | bc

где A - символ

Время для этой команды с файлом размером 4,9 МБ и 1100000 вхождений искомого символа:

real   0m0.168s
user   0m0.059s
sys    0m0.115s
9
ответ дан 24 November 2019 в 00:52
поделиться

tr -d '\ n' <файл | sed 's / A / A \ n / g' | wc -l

Замена двух вхождений «A» на ваш символ и «file» на ваш входной файл.

  • tr -d '\ n' : удаляет символы новой строки
  • sed ' s / A / A \ n / g : добавляет новую строку после каждого появления "A"
  • wc -l : подсчитывает количество строк

Пример:

$ cat file
abcdefgabcdefgababababbbba


1234gabca

$ tr -d '\n' < file | sed 's/a/a\n/g' | wc -l
9
4
ответ дан 24 November 2019 в 00:52
поделиться

Если вам нужно только подсчитать количество строк содержащий вашего персонажа, это будет работать:

grep -c 'f' myfile

Однако он считает несколько вхождений 'f' в одной строке как одно совпадение.

6
ответ дан 24 November 2019 в 00:52
поделиться
Другие вопросы по тегам:

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