Как я могу подсчитать количество вхождений строки в файле?

Возьмем этот код в качестве примера. Представив, что это HTML / текстовый файл, если я хочу узнать, сколько раз появляется echo , как я могу сделать это с помощью bash?

new_user()
{
    echo "Preparing to add a new user..."
    sleep 2
    adduser     # run the adduser program
}

echo "1. Add user"
echo "2. Exit"

echo "Enter your choice: "
read choice


case $choice in
    1) new_user     # call the new_user() function
       ;;
    *) exit
       ;;
esac 
64
задан codeforester 27 April 2018 в 02:09
поделиться

1 ответ

Ни один из существующих ответов не работал на меня с однострочным 10GB файлом. В Grep заканчивается память даже на машине с 768 ГБ RAM!

$ cat /proc/meminfo | grep MemTotal
MemTotal:       791236260 kB
$ ls -lh test.json
-rw-r--r-- 1 me all 9.2G Nov 18 15:54 test.json
$ grep -o '0,0,0,0,0,0,0,0,' test.json  | wc -l
grep: memory exhausted
0

, Таким образом, я записал очень простая программа Ржавчины, чтобы сделать это .

  1. Ржавчина Установки .
  2. cargo install count_occurences
$ count_occurences '0,0,0,0,0,0,0,0,' test.json
99094198

Это немного медленно (1 минута для 10 ГБ), но по крайней мере это не исчерпывает память!

0
ответ дан 24 November 2019 в 15:37
поделиться
Другие вопросы по тегам:

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