シェルスクリプトでデータを絞り込む方法いろいろ(grep、sed、awk)
はじめに
シェルスクリプトやコンソールでデータを絞り込むための方法をいくつか紹介します。
基本どれか一つを使えればいいと思いますが、例えば特定の今度がない!( grep
コマンドを消してしまった! )なんてときに使えるかもしれません。(そんなケースあるのか?)
検証環境
準備
検証用のデータ(csv)を作成。
grep
を使った絞り込み
最もよく使われる方法。
この方法を知っていたら十分ではある。
絞り込み結果を必要に応じてバイプで次のコマンドに渡してやれば、更に可能できる。
sed
を使った絞り込み
sed
でも絞り込みができる。sed
も grep
も、後述する awk
もいずれも ed
という過去にあったライン志向のエディタから派生している。grep
は基本動作としてフィルタ結果を 出力しない が、 sed
は基本動作としてフィルタ結果を 常に出力する 。
-n
というオプションを指定し、基本動作を grep
のように 出力しない ように設定した上で、条件に合致したもののみを sed
の p
コマンドで出力させれば良い。
( p
コマンドは該当行を出力させるためのsed 組み込み
コマンド。 )
awk
を使った絞り込み
先述したとおり、 grep
、 sed
、 awk
は兄弟なので、 awk
でも絞り込みが可能。sed
と awk
は似ていて、/.../
のように "/"で囲んだ部分が絞り込み条件となる 。
参考
sed
、 awk
の絞り込みは単体で使うことはあまりないかもしれませんが、絞り込んで置換するようなときに便利。
ディスカッション
コメント一覧
まだ、コメントがありません