経緯
- エンジニア3年目にしてやっとLinuxに触るようになったのですが、基本的なコマンドの一つの
grep
について一個疑問がありました。 - 全然大した話ではないのですが、
grep
コマンドへの引数として渡している文字列について、クォートで囲っているのとそうでないのがあって、しばらくどういう使い分けなのかわからずに先人のコマンド証跡を真似ていました。 - でもいざ調べるとすぐわかりました。やはりすぐ調べないとですね…。
使い分け
- 以下の使い分けが必要ということでした。
- 検索文字列に空白が含まれる場合:シングルクォートまたはダブルクォートで囲む
- 検索文字列に空白が含まれない場合:囲む必要無し
どういう場面が該当するか
タイムスタンプを検索するケース
- 「空白が含まれるってどういう場面か」という話ですが、自分の実行していた
grep
コマンドの証跡を見てみると、ログファイルを検索していたんですね。 - ログファイルなので、多くの場合タイムスタンプが付いていると思いますが、それが
2019-04-20 13:30:00
みたいな形式だったため、バッチリ該当していました。
所有者と所有グループを検索するケース
- これはググった時にヒットしたページに記載があったのですが、
ls -l
コマンドを打った時の出力に検索をかけるケースも該当します。 - 詳しくは参考リンクを貼りますので、そちらでご確認ください。