Как я могу использовать оболочку UNIX для подсчета количества раз, когда буква появляется в текстовом файле?
У меня есть несколько текстовых файлов, и я хотел бы подсчитать, сколько раз буква появляется в каждом?
В частности, я хотел бы использовать для этого оболочку UNIX в виде: cat file | .... делай всякое...
Есть ли способ заставить команду wc сделать это?
10 ответов:
Другая альтернатива:
tr -d -C X <infile | wc -c
Где X-это символ или строка символов, которые вы хотите подсчитать, а infile-это входной файл.
Альтернатива grep:
sed 's/[^x]//g' filename | tr -d '\012' | wc -c
Где
x
- символ, который вы хотите посчитать.
Есть еще awk:
$ echo -e "hello world\nbye all" | awk -Fl '{c += NF - 1} END {print c}' 5
Измените
-Fl
на-F<your character>
.Это работает, устанавливая разделитель поля на символ, указанный
-F
, а затем накапливая количество полей в каждой строке-1 (потому что если есть один разделитель, есть два поля - но мы должны считать только 1).