Существует сценарий оболочки, который должен обрабатывать входящий текстовый файл.
Этот текстовый файл содержит строки, разбитые на несколько строк, и каждая строка присутствует более одного раза.
Сценарию оболочки необходимо прочитать этот текстовый файл и вывести строку и количество каждой строки.
Рассмотрим текстовый файл:
Тим
Тим
Марка
МАРК
Аллен
ALLen
allEN
Вывод должен быть таким:
Тим появляется 2 раза
Отметитьпоявляется 2 раза
Аллен появляется 3 раза
Прямо сейчас я могу напечатать вхождение строк, но это повторяется количество раз, когда встречается строка, то есть "Тим появляется 2 раза "печатается дважды.Я пытался заменить строку на NULL, как только я посчитал ее возникновение, но по какой-то причине sed не работает, потому что, возможно, я не вызываю ее в нужном месте (или в правильном направлении)
#!/bin/bash
INPUT_FILE="$1"
declare -a LIST_CHARS
if [ $# -ne 1 ]
then
echo "Usage: $0 <file_name>"
exit 1
fi
if [ ! -f $INPUT_FILE ]
then
echo "$INPUT_FILE does not exists. Please specify correct file name"
exit 2
fi
while read line
do
while read i
do
echo $line
count=`grep -i $line | wc -l`
echo "String $line appears $count times"
done < $INPUT_FILE
done < $INPUT_FILE