Я довольно плохо знаком с сценариями bash, поэтому некоторые синтаксисы могут быть неоптимальными. Пожалуйста, укажите их, если вы видите один.
У меня есть файлы в каталоге с последовательным именем.
Пример: prob01_01 prob01_03 prob01_07 prob02_01 prob02_03 ....
Я пытаюсь, чтобы скрипт перебирал текущий каталог и подсчитывал, сколько расширений имеет каждая проблема. Затем напечатайте имя предварительного расширения, затем посчитайте
Пример вывода для выше будет:
prob01 3
prob02 2
Это мой код:
#!/bin/bash
temp=$(mktemp)
element=''
count=0
for i in *
do
current=${i%_*}
if [[ $current == $element ]]
then
let "count+=1"
else
echo $element $count >> temp
element=$current
count=1
fi
done
echo 'heres the temp:'
cat temp
rm 'temp'
Проблема:
Токовый выход:
prob1 3
Желаемый вывод:
prob1 3
prob2 2
Последний счет не добавляется, потому что после него не видно другого элемента
Мои догадки о возможных решениях:
Последнее добавление происходит в конце цикла for?