スポンサーリンク

[] カッコの中の一文字

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

例えば、[kn0]は、kかnか0を意味します。
aw[kn0]なら、awkかawnかaw0をとなります。

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

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

$ cat in.txt 
awk
awn
aw0
aw1

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

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

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

スポンサーリンク

(|) グループ化してORする

例えば、(k0|k1|k2)は、k0かk1かk2を意味します。
aw(k0|k1|k2)なら、awk0かawk1かawk2をとなります。

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

$ cat in2.txt 
awk0
awk1
awk2
awk3

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

cat in2.txt | awk '
    {
        match($0, /aw(k0|k1|k2)/)
        print substr($0, RSTART, RLENGTH)
    }
'

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

[m-n] mからnの一文字

例えば、[0-2]は、0か1か2を意味します。
awk[0-2]なら、awk0かawk1かawk2をとなります。

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

$ cat in3.txt 
awk0
awk1
awk2
awk3

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

cat in3.txt | awk '
    {
        match($0, /awk[0-2]/)
        print substr($0, RSTART, RLENGTH)
    }
'

下記が実行結果になります。
$ ./sample3.sh 
awk0
awk1
awk2

例えば、[k-m]は、kかlかmを意味します。
awk[k-m]なら、awkkかawklかawkmとなります。

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

$ cat in4.txt 
awkk
awkl
awkm
awkn

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

cat in4.txt | awk '
    {
        match($0, /awk[k-m]/)
        print substr($0, RSTART, RLENGTH)
    }
'

下記が実行結果になります。
$ ./sample4.sh 
awkk
awkl
awkm

例えば、[k-m0-3K-M]は、kかlかmか0か1か2か3かKかLかMを意味します。
awk[k-m0-3K-M]なら、awkkかawklかawkmかawk0かawk1かawk2かawkKかawkLかawkMとなります。

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

$ cat in5.txt 
awk0
awk1
awk2
awk3
awkk
awkl
awkm
awkn
awkK
awkL
awkM
awkN

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

cat in5.txt | awk '
    {
        match($0, /awk[k-m0-3K-M]/)
        print substr($0, RSTART, RLENGTH)
    }
'

下記が実行結果になります。
$ ./sample5.sh 
awk0
awk1
awk2
awk3
awkk
awkl
awkm

awkK
awkL
awkM

スポンサーリンク