スポンサーリンク

* 直前の表現が0回以上繰り返し

※awkの使い方をまとめて一覧にしました。
参考:awk入門-使い方まとめ一覧-

aw*の正規表現を試してみます。

参考:awkで正規表現にマッチした文字列を抽出して表示

例えば、下記のin.txtがあったとします。

$ cat in.txt 
k
ak
awk
awwk
awwwk
awwwwk

下記がサンプルコードになります。
$ cat sample.sh 
#!/bin/sh

cat in.txt | awk '
    {
        match($0, /aw*/)
        print substr($0, RSTART, RLENGTH)
    }
'

下記が実行結果になります。
$ ./sample.sh 

a
aw
aww
awww
awwww

スポンサーリンク

+ 直前の表現が1回以上繰り返し

aw+の正規表現を試してみます。

下記がサンプルコードになります。

$ cat sample2.sh 
#!/bin/sh

cat in.txt | awk '
    {
        match($0, /aw+/)
        print substr($0, RSTART, RLENGTH)
    }
'

下記が実行結果になります。
$ ./sample2.sh 


aw
aww
awww
awwww

? 直前の表現が0 or 1回マッチ

aw?の正規表現を試してみます。

下記がサンプルコードになります。

$ cat sample3.sh 
#!/bin/sh

cat in.txt | awk '
    {
        match($0, /aw?/)
        print substr($0, RSTART, RLENGTH)
    }
'

下記が実行結果になります。

$ ./sample3.sh 

a
aw
aw
aw
aw

{n} 直前の表現がn回繰り返し

aw{2}の正規表現を試してみます。

下記がサンプルコードになります。

$ cat sample4.sh 
#!/bin/sh

cat in.txt | awk '
    {
        match($0, /aw{2}/)
        print substr($0, RSTART, RLENGTH)
    }
'

下記が実行結果になります。

$ ./sample4.sh 



aww
aww
aww

{n,} 直前の表現がn回以上繰り返し

aw{2,}の正規表現を試してみます。

下記がサンプルコードになります。

$ cat sample5.sh 
#!/bin/sh

cat in.txt | awk '
    {
        match($0, /aw{2,}/)
        print substr($0, RSTART, RLENGTH)
    }
'

下記が実行結果になります。

$ ./sample5.sh 



aww
awww
awwww

{n,m} 直前の表現がn~m回繰り返し

aw{1,3}の正規表現を試してみます。

下記がサンプルコードになります。

$ cat sample6.sh 
#!/bin/sh

cat in.txt | awk '
    {
        match($0, /aw{1,3}/)
        print substr($0, RSTART, RLENGTH)
    }
'

下記が実行結果になります。

$ ./sample6.sh 


aw
aww
awww
awww

スポンサーリンク