| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「Linux 正規表現を使ってテキストファイルを検索」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
(ページの作成:「==Linux 正規表現を使ってテキストファイルを検索== [Linux][Linux コマンド]{{category 正規表現}} {{amazon|487311070X}} *ファイルグロブ…」)
 
1行目: 1行目:
 
==Linux 正規表現を使ってテキストファイルを検索==
 
==Linux 正規表現を使ってテキストファイルを検索==
[Linux][Linux コマンド]{{category 正規表現}}
+
[[Linux][Linux コマンド]]{{category 正規表現}}
 
{{amazon|487311070X}}
 
{{amazon|487311070X}}
 
*ファイルグロブでは、*などコマンドラインで特別な意味を持つ特殊文字を使用する
 
*ファイルグロブでは、*などコマンドラインで特別な意味を持つ特殊文字を使用する
31行目: 31行目:
 
|-
 
|-
 
|}
 
|}
<blockquote>シェルによる展開の問題を咲けるため、コマンドラインでは正規表現を引用符で囲むようにする</blockquote>
+
&lt;blockquote&gt;シェルによる展開の問題を咲けるため、コマンドラインでは正規表現を引用符で囲むようにする&lt;/blockquote&gt;
 
===sed===
 
===sed===
 
  sed [options] 'command1' [file]
 
  sed [options] 'command1' [file]

2020年2月15日 (土) 08:04時点における版

Linux 正規表現を使ってテキストファイルを検索

[[Linux][Linux コマンド]]テンプレート:Category 正規表現

  • ファイルグロブでは、*などコマンドラインで特別な意味を持つ特殊文字を使用する
  • bashが認識するワイルドカード文字はほんの数個だが、比較的単純なファイル名のグロビングには十分
  • 単純でないグロビングが必要になる場合、ファイルグロブの考え方を汎用のテキストストリームに応用することで広範な機能が利用できるようになる
  • そのためには、正規表現を利用する

grep

  1. grep [options] regex [file]
  • fileで指定したファイルまたは標準入力から、regexでしてした正規表現に一致する行を検索する

頻用オプション

オプション 内容
一致した行の数だけを表示
一致した行を表示するが、複数ファイルを指定した場合、付加されるファイル名を表示しない
大文字小文字を区別しない
一致行に行番号を付与
regexで指定した正規表現に一致しない行をすべて出力

<blockquote>シェルによる展開の問題を咲けるため、コマンドラインでは正規表現を引用符で囲むようにする</blockquote>

sed

  1. sed [options] 'command1' [file]
  2. sed [options] -e 'command1' [-e 'command2'] [file]
  3. sed [options] -f script [file]
  • command1は単一引用符で囲むことに注意する(シェルによる評価と展開を抑制のため)
  • sedコマンドのアドレス部分にはスラッシュで囲んだ正規表現を含めることができる
  • file1で指定したファイルの内容の空行を除きすべて表示する
  1. $ sed '/^$/ d' file1

引用符