Linuxコマンド.NETLinuxコマンド.NETLinuxコマンドを中心にIT技術関係の情報を発信します。Linuxコマンドについてはできるだけ実行例と実行結果を紹介したいと思います。Linuxコマンドgrepコマンドは、文字列検索や特定の文字列を持つファイルの検索を行うことができます。ファイルの中にあるパターンにマッチした行を検索や逆にパターンにマッチしなかった行を表示することが可能です。参考grepとは文字列検索やパターンにマッチしたファイルの検索を行うことができるコマンドです。ファイルの文字列検索はマッチした行だけではなく、マッチしなかった行の表示も行うことができます。パターンにマッチしたファイル名や行番号も表示することができます。パターンにマッチした行の前後の行やパターンにマッチした行の行数の表示も行うことができます。入力ファイルオプション:0個以上のオプションをつけることができます。ファイル名'でパターンを指定する場合、必要ありません。入力ファイル:0個以上の入力ファイルを指定できます。パターンにマッチした行を抽出itemtext.txtに書かれているappleのある行がすべて抽出されます。apple端末(terminal)によってはcolorのオプションをつけると抽出したパターンが色付けされて、より分かりやすくなります。itemtext.txtとするとappleという単語に色がついて、どこにappleという単語があるかがわかりやすくなります。大文字と小文字を区別しない(-iオプション)-iオプションは、パターンの大文字と小文字を区別しないようになります。どのような文字かだけがわかっている場合に利用することができます。apt-cacheコマンドなどでパッケージを検索するときやシステム情報等を検索するときなどに便利です。コマンド例では、sedコマンドで行の1番目にあるappleを大文字にしています。APPLE複数のパターンを指定(-eオプション)-eオプションで指定するパターンを明示することができます。-eオプションは複数つけることができ、複数つけると一致したパターンのいずれかが含まれていたら、その行が抽出されます。yuzu複数のパターンをファイルで指定(-fオプション)-fオプションは複数のパターンはファイルによっても指定できます。パターンの書き方は指定するパターンを一行ずつに分けて書きます。yuzuマッチしない行を抽出(-vオプション)-vオプションによって、appleに一致しない行が抽出されます。余分なものをフィルタするときによく使われ、パイプなどで次のコマンドに渡す出力を制限するときに便利です。yuzu行がパターンにそのまま一致する行を抽出(-xオプション)-xオプションは、行がパターンにそのまま一致するときにその行を抽出します。パターンの指定で正規表現で^と$でパターンを囲んだもの("^pattern$"のようなもの)と同じになります。なし別の例を出すと、以下のようになります。apple12appleapple-xオプションはほかのコマンドと組み合わせて利用できます。itemtext.txtの3列目にあるappleとyuzuの数を数えるとします。それは、以下のようなコマンドで数えることができます。yuzuパターンにマッチした行数を数える(-cオプション)-cオプションでパターンにマッチした行数を数えることができます。yuzu実行結果19119-vオプションを組み合わせると逆にパターンにマッチしなかった行数を数えることができます。itemtext.txt実行結果818パターンにマッチする行数を制限(-mオプション)-mオプションは、マッチした行数が指定した数値まで読み込むと、それ以降のそのファイルに対するパターンマッチングをストップします。yuzuファイルを複数選択していた場合の結果は、以下の通りになります。ここで、itemtext2.txtはitemtext.txtのコピーになります。yuzuパターンにマッチした部分のみを抜き出す(-oオプション)-oオプションは、パターンにマッチした部分のみを抜き出します。出力にはマッチした部分が行に分かれて表示されます。yuzu実行結果appleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleappleuniqコマンドと組み合わせれば、出てきたパターンの数を数え上げることができます。apple複数のパターンを指定している場合、uniqコマンドの前にsortコマンドを通すことで、それぞれのパターンについて、出てきた数を数え上げることができます。yuzuファイル名を表示(-Hオプション)-Hオプションはパターンを検索したとき、パターンに一致した行と一緒にファイル名も一緒に表示します。2つ以上のファイルに対して検索するとき、自動的にこのオプションはONになります。appleファイル名を表示しない(-hオプション)-hオプションはパターンに一致した行に対して、ファイル名を非表示にします。ここでitemtext2.txtはitemtext.txtのコピーです。通常、2つ以上のファイルに対して、grepコマンドを行うとパターンに一致した行と一緒にファイル名も表示されます。-hオプションをつけることで、ファイル名を非表示にできます。apple標準入力に渡されたものにラベルをつける(--labelオプション)--labelオプションは、標準入力から来た文字列に対して、ファイル名があるかのようにラベルをつけることができます。標準入力でgrepコマンドに-Hオプションをつけて渡された時の出力を見ます。input)に対して、別の名前を付けることができます。それは、--labelというオプションでできます。applegrepで検索したパターンをファイルにどんどん追記していくときにラベルをつけておくと、どういう意図の出力された文字列かがわかるかもしれません。パターンにマッチした部分の行番号を表示(-nオプション)-nオプションは、パターンに一致した部分の行番号を表示します。apple-Hオプションと併用するとファイル名も表示することができます。これでどのファイルのどの行がパターンに一致したかを把握することができます。appleパターンにマッチしているファイルを検索(-lオプション)lオプションは、パターンの後にファイル名を指定することでパターンにマッチした行ではなく、ファイルの名前を表示してくれます。itemtext2.txt.(ドット)はカレントディレクトリです。itemtext2.txtとitemtext-dir1.txtは、itemtext.txtのコピーになります。empty.txtとempty-dir1.txtは何も書かれていないファイルとなります。directoryitemtext.txtitemtext2.txtディレクトリを指定した場合に違うメッセージを出しますが、-sオプションを用いることでこのようなメッセージやエラーメッセージを表示させないようにすることができます。itemtext2.txt12itemtext.txtitemtext2.txt再帰的にパターンにマッチしているファイルを検索(-rオプションと-lオプション)-rオプションは、ファイルの代わりにディレクトリを指定して、再帰的にそれぞれのファイルに対して検索を行っていくオプションです。itemtext2.txt.(ドット)はカレントディレクトリです。itemtext2.txtとitemtext-dir1.txtは、itemtext.txtのコピーになります。empty.txtとempty-dir1.txtは何も書かれていないファイルとなります。./itemtext.txt123./dir1/itemtext-dir1.txt./itemtext2.txt./itemtext.txtディレクトリを指定しなければ、現在のディレクトリから再帰的に検索していきます。itemtext.txt123dir1/itemtext-dir1.txtitemtext2.txtitemtext.txt再帰的にファイルに対してパターンにマッチした行を検索(-rオプション)-rオプションは、ファイルの代わりにディレクトリを指定して、再帰的にそれぞれのファイルに対して検索を行っていくオプションです。ディレクトリを指定しなければ、現在のディレクトリから再帰的に検索していきます。itemtext2.txt.(ドット)はカレントディレクトリです。itemtext2.txtとitemtext-dir1.txtは、itemtext.txtのコピーになります。empty.txtとempty-dir1.txtは何も書かれていないファイルとなります。appleディレクトリを複数指定した場合は、入力した順番のディレクトリでファイルを再帰的に実行していきます。appleこの例ではdir1を繰り返して、検索していますが実際に利用する際はこのような指定はしないと思います。再帰的な検索から検索項目を除外(--excludeオプション)(--exclude-fromオプション)(--exclude-dirオプション)--excludeオプション--excludeオプションは、検索から除外するファイルを指定します。指定するファイルについてはワイルドカードを使用できます。*.txtですべてのテキストファイルを検索から除外します。今回の例では出力は表示されません。itemtext2.txt.(ドット)はカレントディレクトリです。itemtext2.txtとitemtext-dir1.txtは、itemtext.txtのコピーになります。empty.txtとempty-dir1.txtは何も書かれていないファイルとなります。なしもし、itemtext.txtのコピーであるitemtext.datがあるならば、このコマンド例は以下のような実行結果になります。apple'{}'で複数のリストを指定することもできます。appleと等価なコマンドになります。これはすべてのテキストファイルとすべてのデータファイルを除外することができます。--exclude-fromオプション--excludeオプションで除外するファイルは別のファイルにすることができます。--exclude-fromオプションは、--excludeオプションで除外するファイルを別のファイルに書き込んで置き、そのファイルを読み込んで検索から除外することができます。itemtext2.txt.(ドット)はカレントディレクトリです。itemtext2.txtとitemtext-dir1.txtは、itemtext.txtのコピーになります。empty.txtとempty-dir1.txtは何も書かれていないファイルとなります。なし--exclude-dirオプション--exclude-dirオプションは検索から除外できるディレクトリを指定することができます。ワイルドカードを用いた指定もできます。itemtext2.txt.(ドット)はカレントディレクトリです。itemtext2.txtとitemtext-dir1.txtは、itemtext.txtのコピーになります。empty.txtとempty-dir1.txtは何も書かれていないファイルとなります。apple指定のファイルのみを検索(--includeオプション)--includeオプションは指定したファイルだけを検索します。*.txtですべてのテキストファイルだけを検索します。--excludeオプションと同じようにワイルドカードを用いて指定することができます。itemtext2.txt.(ドット)はカレントディレクトリです。itemtext2.txtとitemtext-dir1.txtは、itemtext.txtのコピーになります。empty.txtとempty-dir1.txtは何も書かれていないファイルとなります。appleシンボリックリンクのディレクトリも再帰検索(-Rオプション)-Rオプションはシンボリックリンクの先のディレクトリやファイルも再帰検索するオプションです。通常の-rオプションではシンボリックリンクの先までは再帰検索を行いません。-Rオプションで検索の除外をする際、-rオプションと扱いは同じになり、シンボリックリンクの先がディレクトリの場合は--exclude-dirオプションで、シンボリックリンクの先がファイルの場合は--excludeで除外することができます。/home/ubuntu/test_grep/itemtext.txt.(ドット)はカレントディレクトリです。itemtext2.txtとitemtext-dir1.txtは、itemtext.txtのコピーになります。empty.txtとempty-dir1.txtは何も書かれていないファイルとなります。dir1_symとitemtext_sym.txtはシンボリックリンクファイルになります。appleこの例ではあらかじめシンボリックリンクを準備しています。dir1のシンボリックリンクのディレクトリはdir1_symです。itemtext.txtのシンボリックリンクのファイルはitemtext_sym.txtです。itemtext_sym.txtになります。ファイルまたはディレクトリになります。パターンにマッチした行の後ろのn行を表示(-Aオプション)-Aオプションはパターンマッチングした行の後ろの行も表示することができます。何行を表示するかは-Aオプションの後の数字で指定します。この例では、3を指定したことでパターンマッチした行の後ろ3行分表示しています。onion-Aオプションが設定されていても、grepコマンドは表示する行を何度も繰り返しません。onionパターンにマッチした行の前からn行を表示(-Bオプション)-Bオプションはパターンマッチングした行の前の行を表示することができます。何行を表示するかは-Bオプションの後の数字で指定します。この例では、3を指定したことでパターンマッチした行の前3行分表示しています。onion-Bオプションが設定されていても、-Aオプションと同様にgrepコマンドは表示する行を何度も繰り返しません。パターンにマッチした行の前後n行を表示(-Cオプション)-Cオプションはパターンマッチングした行の前後の行を表示することができます。何行を表示するかは-Cオプションの後の数字で指定します。この例では、3を指定したことでパターンマッチした行の前後3行分表示しています。onion-Cオプションが設定されていても、-Aオプションと同様にgrepコマンドは表示する行を何度も繰り返しません。前後に表示した時の行の区切り文字を変更(--group-separator=string)--group-separatorオプションは、-A,-B,-Cオプションの時に、パターンマッチした行の前後の表示で使われていた区切り文字を任意の文字列で変更することができます。onion前後に表示したときの行の区切り文字を表示しない(--no-group-separator)--no-group-separatorオプションは、-A,-B,-Cオプションの時に、パターンマッチした行の前後の表示で使われていた区切り文字を表示しないようにすることができます。コメントをキャンセルメールアドレスが公開されることはありません。*次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。Linuxコマンド.NET.。