Desire 출력을 위해 쉘을 사용해야 합니다.

Desire 출력을 위해 쉘을 사용해야 합니다.

원하는 출력을 얻으려면 쉘 스크립트를 사용해야 합니다.

입력하다:

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

관련 정보