==[[Linux 正規表現を使ってテキストファイルを検索]]==[[Linux]] | [[Linux コマンド]] | {{category [[Category:正規表現}}]]
{{amazon|487311070X}}
*ファイルグロブでは、*などコマンドラインで特別な意味を持つ特殊文字を使用する
*bashが認識するワイルドカード文字はほんの数個だが、比較的単純なファイル名のグロビングには十分
*単純でないグロビングが必要になる場合、ファイルグロブの考え方を汎用のテキストストリームに応用することで広範な機能が利用できるようになる
*そのためには、正規表現を利用するそのためには、[[正規表現]]を利用する
===grep===
grep [options] regex [file]
*fileで指定したファイルまたは標準入力から、regexでしてした正規表現に一致する行を検索するfileで指定したファイルまたは標準入力から、regexでしてした[[正規表現]]に一致する行を検索する
====頻用オプション====
{|class="wikitable"
|-
|-v
|regexで指定した正規表現に一致しない行をすべて出力regexで指定した[[正規表現]]に一致しない行をすべて出力
|-
|}
<blockquote>シェルによる展開の問題を咲けるため、コマンドラインでは正規表現を引用符で囲むようにするシェルによる展開の問題を咲けるため、コマンドラインでは[[正規表現]]を引用符で囲むようにする</blockquote>
===sed===
sed [options] 'command1' [file]
sed [options] -f script [file]
*command1は単一引用符で囲むことに注意する(シェルによる評価と展開を抑制のため)
*sedコマンドのアドレス部分にはスラッシュで囲んだ正規表現を含めることができるsedコマンドのアドレス部分にはスラッシュで囲んだ[[正規表現]]を含めることができる
=====例=====
*file1で指定したファイルの内容の空行を除きすべて表示する
$ sed '/^$/ d' file1
====引用符====