grep、sedで(ゾロ目のような)同じ文字の繰り返しを抽出、置換する

コンソール上で、同じ文字の繰り返し(ゾロ目とか)を抽出、置換したいことがあったので、備忘で残しておく事にする。
抽出する場合は、以下のようにgrepで正規表現を書いてやる。Nのトコはゾロ目の数-1の数字を入れてやる。

grep -oE '(.)\1{N}'
[root@BS-PUB-CENT7-01 test_dir]# seq -w 0 999 | grep -E '(.)\1{2}'
000
111
222
333
444
555
666
777
888
999
Sponsored Links

置換する場合も同様で、sedで以下のように記述してやればいい。

sed -r 's/(.)\1{N}/xxx/g'
[root@BS-PUB-CENT7-01 test_dir]# seq -w 0 40 | sed -r 's/(.)\1{1}/xxxx/g'
xxxx
01
02
03
04
05
06
07
08
09
10
xxxx
12
13
14
15
16
17
18
19
20
21
xxxx
23
24
25
26
27
28
29
30
31
32
xxxx
34
35
36
37
38
39
40

 


Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

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

*