원하는 출력을 얻으려면 쉘 스크립트를 사용해야 합니다.
입력하다:
aaabbcaaabbcc
원하는 출력:
a3b2ca3b2c2
aaab
이 명령은 각 문자가 1보다 큰 경우 에만 각 문자의 발생 횟수를 인쇄해야 합니다 a3b
.
다음 명령을 사용해 보았지만 명령에 문자를 수동으로 전달해야 하기 때문에 작동하지 않습니다.
echo "aaabbcaaabbcc" | grep -o a
echo "aaabbcaaabbcc" | uniq -c
echo "aaabbcaaabbcc" | grep -o a | uniq -c
문자별로 분할한 다음 발생 횟수를 확인하는 방법을 찾을 수 없습니다.
답변1
str="aaabbcaaabbcc"
echo $str | fold -w1 | uniq -c | \
while read count char; do
if [ $count -gt 1 ]; then
printf "$char$count"
else
printf "$char"
fi
done
a3b2ca3b2c2