grep - テキストの検索
検索パターン
検索に使用するパターンを限定正規表現で記述します。
限定正規表現の詳細は マニュアル regexp(5) に記載されています。
パターンを改行で区切って記述した場合、複数のパターンとして扱い
擬似AND検索 または 擬似OR検索を行ないます。
(参考) man pages
regexp(5)
(オラクル社ページへリンク)
正規表現エディタ
限定正規表現の記述を支援するツールです。(使用例)
/
エディタの表示/非表示が切り替わります。
| 要素 | 機能 |
|---|---|
| "編集フィールド"の内容を検索パターンに追加します。内容に応じて色が変わります。 適切な場合 ⇒ 不適切な場合 ⇒ |
|
| "編集フィールド"の内容が不適切と判定された理由を表示します。 | |
| "編集フィールド"の選択文字列を指定した回数だけ繰り返します。 下限値と上限値を用いて繰り返し回数の範囲を指定します。 下限値、上限値を1減少 または 1増加します。 |
|
| "編集フィールド"の選択文字列を消去します。非選択時は内容を全て消去します。 | |
| 編集フィールド |
ここで内容を直接編集するか、各機能ボタンを使用して加工します。 加工結果を反映する前に、元の内容は"履歴"に保存されます。 |
| "編集フィールド"の選択文字列をグループ化します。 グループの開始位置と終了位置を示す"グループマーカー"が表示されます。 |
|
| グループマーカー … |
"編集フィールド"の各グループの開始位置と終了位置を表します。 クリックすると"編集フィールド"のカーソル位置に後方参照表現(\1 … \9)を挿入します。 |
| 呼出ボタン | "編集フィールド"のカーソル位置に"定義済み表現"または"履歴"の選択値を挿入します。 文字列が選択されている場合、挿入値で置換します。 |
| 保存ボタン | "編集フィールド"の内容を"履歴"に保存します。 文字列が選択されている場合、選択文字列のみを保存します。 最後に保存された値と同じ場合は保存されません。 |
| セレクタ |
"編集フィールド"の選択文字列の範囲を変更します。 選択開始位置を前または後ろに1文字ずらします。 (例: [abc] ⇒ [abc] [abc]) 選択開始位置と終了位置を逆方向に1文字ずつずらします。 (例: [abc] ⇒ [abc] [abc]) 選択終了位置を前または後ろに1文字ずらします。 (例: [abc] ⇒ [abc] [abc]) |
| 定義済み表現 |
定義済みの正規表現のリストです。 "呼出ボタン"またはダブルクリックで"編集フィールド"に挿入します。 |
| 履歴 |
自動的に、または"保存ボタン"で保存された正規表現のリストです。 新しい順に保存されています。 "呼出ボタン"またはダブルクリックで"編集フィールド"に挿入します。 |
(使用例)
/var/adm/messages から MACアドレスを含む行を検索するコマンドの作成手順です。
MACアドレスは 2桁の16進数を : (コロン)区切りで6個並べた文字列とします。
| 操作手順 | ||
|---|---|---|
| 1. | をクリック | |
| MACアドレスの正規表現を作成します。 | 正規表現エディタの編集フィールドの内容 | |
| 2. | "定義済み表現" の "英数字"をダブルクリック |
[A-Za-z0-9] |
| 3. | A-Za-z 選択 | [A-Za-z0-9] |
| 4. | A-Za-z を a-f に変更 | [a-f0-9] |
| 5. | をクリック | ("履歴"に [a-f0-9] が追加されます) |
| 6. | カーソルを末尾に移動 | [a-f0-9]I |
| 7. | "履歴" の [a-f0-9] をダブルクリック |
[a-f0-9][a-f0-9] |
| 8. | : (コロン)を入力 | [a-f0-9][a-f0-9]: |
| 9. | [a-f0-9][a-f0-9]: を選択 | [a-f0-9][a-f0-9]: |
| 10. | 6回以上 6回以下 指定で をクリック |
[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]: |
| 11. | 末尾の : (コロン)を削除 | [a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9] |
| 12. | をクリック | (作成した正規表現が検索パターンに追加されます) |
| 13. | をクリック | |
| 14. | 英字の大小を区別しない をチェック | |
| 15. | テキスト検索の対象とするファイル名 に /var/adm/messages を入力 | |
| 16. | をクリック | |
| 以下のコマンドが作成されます。
/usr/bin/grep -i '[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]' /var/adm/messages
|
||
検索条件
-
全てにマッチする … 擬似AND検索(※) を行ないます。
(※) 記述した順番通りにパターンが出現する場合のみマッチします。
-
いずれかにマッチする … 擬似OR検索(※) を行ないます。
(※) 複数のパターンにマッチする場合、その都度結果が表示されます。
パターン毎に結果を表示するので表示順は実際の行順と前後します。 -
検索条件を反転する … パターンにマッチしない行を表示します。
複数パターンでの検索は、以下の検索条件に変わります。- 全てにマッチする <=> 全てにはマッチしない
- いずれかにマッチする <=> いずれにもマッチしない
- 英字の大小を区別しない … 英字の大文字、小文字の違いを無視して検索します。
-
前方一致 … 検索パターンが行頭にマッチするように行頭表現(^)を補います。
後方一致 … 検索パターンが行末にマッチするように行末表現($)を補います。
- 両方チェックすると、行全体にマッチする完全一致検索になります。
- 両方チェックしないと、行の一部にマッチする部分一致検索になります。
-
AND検索では、行頭表現は1番目のパターンにのみ補います。
行末表現は最後のパターンにのみ補います。 - OR検索では、それぞれのパターンに補います。
-
ファイル名のみ表示する … マッチした行の内容を表示せずファイル名のみ表示します。
"いずれにもマッチしない" をチェックした場合、この指定は無視されます。
テキスト検索の対象とするファイル名
指定しない場合、標準入力を検索の対象とします。
"いずれかにマッチする" をチェックした場合入力必須です。(標準入力を対象にはできません)