Подтвердить что ты не робот

Как я могу использовать оболочку UNIX для подсчета количества раз, когда письмо появляется в текстовом файле?

У меня есть несколько текстовых файлов, и я хотел бы подсчитать, сколько раз появляется буква в каждом из них?

В частности, я хотел бы использовать оболочку UNIX для этого в виде: cat file |.... делать вещи...

Есть ли способ заставить команду wc сделать это?

4b9b3361

Ответ 1

grep char -o filename | wc -l

Ответ 2

Другая альтернатива:

tr -d -C X <infile | wc -c

где X - символ или строка символов, которые вы хотите подсчитать, а infile - входной файл.

Ответ 3

Альтернатива grep:

sed 's/[^x]//g' filename | tr -d '\012' | wc -c

где x - символ, который вы хотите подсчитать.

Ответ 4

Там также awk:

$ echo -e "hello world\nbye all" | awk -Fl '{c += NF - 1} END {print c}'
5

Измените -Fl на -F<your character>.

Это работает, устанавливая разделитель полей символом, указанным -F, а затем накапливая количество полей в каждой строке - 1 (потому что если есть один разделитель, есть два поля, но мы должны считать только 1).

Ответ 5

awk '{ printf "%s\n", gsub( "ur_char", "oth_char", $0 ) }' < your_file_name > output.txt

вы можете добавить счетчик текущего номера строки, чтобы получить номера строк в awk.

Ответ 6

echo "a/b/c/d/e/f/g" | awk -F "/" '{print NF}'

это даст номер появления символа "/"

Ответ 7

В этом случае i'am подсчитывает символ "|":

expr `wc -c < filename` \- `tr -d \| < filename | wc -c`

Ответ 8

Вы можете попробовать легко: grep -c 'YOUR LETTER' YOUR FILE

Ответ 9

попробуйте с помощью

grep  [PATTERN] -o [FILE] | wc -l

и, пожалуйста, не используйте cat, если не нужно.

Ответ 10

Вот еще один способ

cat  input_file | \
awk 'BEGIN {FS="x"; var=0 } \
{if (NF>0){ var=var + (NF-1) } } \
END{print var}'

где X - символ или строка символов, которые вы хотите подсчитать, а infile - это входной файл