at_takumi.mizutani
2022年8月15日 13時52分
ファイル内文字列の検索(基本正規表現)
ファイル内の文字列を検索するにはgrepコマンドを使用します。
以下の例では、Armadillo.txtから"Armadillo-IoT"とマッチする行を検索します。
cオプションを使用するとマッチする行数を出力することもできます。
Armadillo.txt
Armadillo-IoT_G4 Armadillo-IoT_G3 Armadillo-IoT_G3L Armadillo-IoT_A6 Armadillo-IoT_A6E Armadillo-X1 Armadillo-640 Armadillo-610 Armadillo-460 Armadillo-440 Armadillo-420 Armadillo-410 Armadillo-840 Armadillo-810
[armadillo ~]# grep '^Armadillo-IoT.*' Armadillo.txt Armadillo-IoT_G4 Armadillo-IoT_G3 Armadillo-IoT_G3L Armadillo-IoT_A6 Armadillo-IoT_A6E [armadillo ~]# grep -c '^Armadillo-IoT.*' Armadillo.txt 5
また、vオプションを使用すると指定した正規表現にマッチしない行を検索することができます。
以下の例では、Armadillo.txtから"Armadillo-IoT"とマッチしない行を検索します。
[armadillo ~]# grep -v '^Armadillo-IoT.*' Armadillo.txt Armadillo-X1 Armadillo-640 Armadillo-610 Armadillo-460 Armadillo-440 Armadillo-420 Armadillo-410 Armadillo-840 Armadillo-810
ファイル内文字列の検索(拡張正規表現)
拡張正規表現※1を使用してファイル内の文字列を検索するにはegrepコマンド、またはgrepコマンドのEオプションを使用します。
以下の例では、Armadillo.txtから"Armadillo-IoT_A6E"、"Armadillo-IoT_G3"、"Armadillo-IoT_G4"とマッチする行を検索します。
また、egrepコマンドでも同様にマッチする行数をカウントするcオプションや、マッチしない行を検索するvオプションを使用することができます。
[armadillo ~]# egrep '^Armadillo-IoT_(A6E|G3|G4)$' Armadillo.txt Armadillo-IoT_G4 Armadillo-IoT_G3 Armadillo-IoT_A6E [armadillo ~]# egrep -c '^Armadillo-IoT_(A6E|G3|G4)$' Armadillo.txt 3 [armadillo ~]# egrep -v '^Armadillo-IoT_(A6E|G3|G4)$' Armadillo.txt Armadillo-IoT_G3L Armadillo-IoT_A6 Armadillo-X1 Armadillo-640 Armadillo-610 Armadillo-460 Armadillo-440 Armadillo-420 Armadillo-410 Armadillo-840 Armadillo-810
正規表現についての記事
※1 正規表現は基本正規表現(BRE)、拡張正規表現(ERE)、Perl互換の正規表現(PCRE)の3種類に分けられ、
"+"、"?"、"|"、"{}"は拡張正規表現に分類されます。