Gnu sedでリピートされている文字のみを削除する
Pocket

リピートされた文字を削除する処理が必要になったので、備忘で残しておく。
以下のように記述することで、sedで同じ文字がリピートされた場合は削除ができる。なお、GNU Sedでしか動作しないので注意。

echo aabbbbbbbbbcde | sed 's/\(.\)\+//g'
echo aabbbbbbbbbcde | sed -r 's/(.)+//g' # エスケープなしにして分かりやすくした場合
echo aabbbbbbbbbcde | sed -r 's/(.){1}//g' # リピート回数を指定する場合({}のなかに入る数字はリピート回数-1)
Sponsored Links

blacknon@BS-PUB-UBUNTU-01:~$ echo aabbbbbbbbbcde | sed 's/\(.\)\+//g'
abcde
blacknon@BS-PUB-UBUNTU-01:~$ echo aabbbbbbbbbcde | sed -r 's/(.)+//g'
abcde
blacknon@BS-PUB-UBUNTU-01:~$ echo aabbbbbbbbbcde | sed -r 's/(.){1}//g'
abbbbbcde
blacknon@BS-PUB-UBUNTU-01:~$ echo aabbbbbbbbbcde | sed -r 's/(.){2}//g'
aabbbcde

 

Pocket

Written by blacknon

インフラエンジニア(…のつもり)。 仕事で使うならクライアントはWindowsよりはUNIXの方が好き。 大体いつも眠い。

Leave a Comment

メールアドレスが公開されることはありません。

*