はじめに
シェルスクリプトやコンソールでデータを絞り込むための方法をいくつか紹介します。
基本どれか一つを使えればいいと思いますが、例えば特定の今度がない!( 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 の絞り込みは単体で使うことはあまりないかもしれませんが、絞り込んで置換するようなときに便利。