grepコマンドの-Aオプションと-Bオプションと、時々、-Cオプション
最近知ったgrepコマンドの-Aオプションと-Bオプションと、時々、-Cオプションについてメモっておく。
例えば設定ファイルを見てHDFSのブロックサイズを知りたいとします。
hdfs-site.xmlをdfs.block.sizeでgrepすると下記のようになります。
$ grep dfs.block.size hdfs-site.xml <name>dfs.block.size</name>
や、知りたいのはその1行後なんだけど、、、って時は、-Aオプションを使います。うむデフォルトの64MBですね。
$ grep -A 1 dfs.block.size hdfs-site.xml <name>dfs.block.size</name> <value>67108864</value>
検索対象の後の行を知りたい場合はafterということで-A、前の行を知りたい場合はbeforeということで-Bオプションを使います。こんな感じ。
$ grep -A 3 -B 1 dfs.block.size hdfs-site.xml <property> <name>dfs.block.size</name> <value>67108864</value> <description>The default block size for new files.</description> </property>
また-Aと-Bに同じ数を指定する場合は-Cも使えます。こんな感じ。-A 3 -B 3と同じ意味になります。
$ grep -C 3 dfs.block.size hdfs-site.xml </property> <property> <name>dfs.block.size</name> <value>67108864</value> <description>The default block size for new files.</description> </property>