Как подсчитать конкретные строки в файле?

Использование хеш-таблицы для подсчета конкретных строк, а результат – результат со временем повторения.

Файл A

AAA BBB CCC DDD BBB DDD AAA CCC BBB AAA BBB CCC BBB 

результат

 AAA 3 BBB 5 CCC 3 DDD 2 

Это домашнее задание? Если нет, просто используйте sort и uniq :

 $ sort file | uniq -c 3 AAA 5 BBB 3 CCC 2 DDD 

Если вам по какой-то причине нужно самому скриптировать его, вы можете использовать Perl:

 $ perl -lne '$k{$_}++; END{print "$_\t$k{$_}" for keys(%k)}' CCC 3 BBB 5 DDD 2 AAA 3 

Если вам действительно нужно использовать сценарий оболочки, вы можете сделать (здесь синтаксис bash или ksh ):

 unset num; typeset -A num; while IFS= read -r line; do ((num[$line]++)) done < file for line in "${!num[@]}"; do printf '%s\t%s\n' "$line" "${num[$line]}" done 

С awk:

 awk '{count[$1]++} END {for (string in count) { print string ":" count[string]}}' data 

где data – это имя вашего файла

Другая возможность

 cat file | sort | uniq | wc -l