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

おすすめ記事