必要な出力を取得するには、シェルスクリプトを使用する必要があります。
入力する:
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