文字列検索コマンドの小ネタ
文字列検索コマンドの小ネタ2009年12月 2日 19:29
Linux/UNIX環境で文字列検索といえば、真っ先にgrepコマンドが連想されると思います。
普通の使い方としては、検索文字列や正規表現を指定してマッチした文字列を抜き出すと言う方法をとるはずです。
ただ、スクリプトを作成しているときに、どうしてもマッチした行の直前や直後といった、付近の情報もまとめて抜き出したいといったことがありました。
そこで便利なオンラインマニュアルを確認すると、該当するオプションが載っています。
あとは、検索できた行を加工して活用すれば良いだけです。
ではまた
普通の使い方としては、検索文字列や正規表現を指定してマッチした文字列を抜き出すと言う方法をとるはずです。
ただ、スクリプトを作成しているときに、どうしてもマッチした行の直前や直後といった、付近の情報もまとめて抜き出したいといったことがありました。
そこで便利なオンラインマニュアルを確認すると、該当するオプションが載っています。
- -Aオプション(After Context)
検索文字列でマッチした行と、-Aオプションで指定した数字の分だけ後の行を表示します。
検索結果はこんな感じ
# grep -A 1 210.188 delegated
delegated-apnic-latest:apnic|JP|ipv4|210.188.0.0|262144|19990609|allocated ←マッチした行
delegated-apnic-latest-apnic|TW|ipv4|210.192.0.0|16384|20021113|allocated ←オプションで指定した行
- -Bオプション(Before Context)
検索文字列でマッチした行と、-Bオプションで指定した数字の分だけ前の行を表示します。
検索結果はこんな感じ
# grep -B 1 210.188 delegated
delegated-apnic-latest-apnic|MY|ipv4|210.187.128.0|32768|20010820|allocated ←オプションで指定した行
delegated-apnic-latest:apnic|JP|ipv4|210.188.0.0|262144|19990609|allocated ←マッチした行
- -Cオプション(Context)
検索文字列でマッチした行と、前後(デフォルト:2)の行を表示します。
検索結果はこんな感じ
# grep -C 1 210.188 delegated
delegated-apnic-latest-apnic|MY|ipv4|210.187.128.0|32768|20010820|allocated
delegated-apnic-latest:apnic|JP|ipv4|210.188.0.0|262144|19990609|allocated ←マッチした行
delegated-apnic-latest-apnic|TW|ipv4|210.192.0.0|16384|20021113|allocated
あとは、検索できた行を加工して活用すれば良いだけです。
ではまた








