
No.3ベストアンサー
- 回答日時:
linux等のunix系で、使い方に困ったら
man コマンド名
と打ってみることです。詳しいマニュアルが読めます。英語でわからない、という場合は「manpage コマンド名」で検索すれば日本語版があることがあります。
さて、man grepの正規表現(と言います。コマンドとは呼びません)の項目を見ると
>n が 1 つの数字であるような 後方参照 \n は、正規表現中の括弧で囲まれた n 番目の部分表現がマッチした文字列とマッチします
とあります。
( http://www.linux.or.jp/JM/html/GNU_grep/man1/gre … )
例えば、
\([a-z]\)-\1
の場合、
a-a
は ()の中の[a-z]に先頭の「a」がマッチ
→2文字目の-にマッチ
→\1は1つめの()の中、つまり「a」となり3文字目の「a」にマッチ
→全体としてマッチ
b-a
は ()の中の[a-z]に先頭の「b」がマッチ
→2文字目の-にマッチ
→\1は1つめの()の中、つまり「b」となり3文字目の「a」にマッチせず
→全体としてマッチせず
となります。
この前にでてきた文字列を後で使いたい、というところがミソです。
前のカッコと同じだからといって、
[a-z]-[a-z]
としてしまうと、それぞれ別にマッチングが行なわれるので
b-a
は[a-z]に先頭の「b」がマッチ
→2文字目の-にマッチ
→[a-z]に3文字目の「a」にマッチ
→全体としてマッチ
となり、上と結果が変ってきます。
文字列ですから
\(CUT\|cut).*\1
などとも書けます。この例では
CUTからCUTまでと、cutからcutまでがマッチし、CUTからcutまでや.cutからCUTまでにはマッチしない、となります。
No.2
- 回答日時:
grep --helpで説明が表示されませんか?
Redhatですが、正規表現の選択と解釈方法、その他、出力制御、前後関係の制御とegerp、fgrepの説明が記述されています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aに関連する記事
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
英数字のみ全角から半角に変換
-
CSVの定義
-
各項目がダブルクォーテーショ...
-
文字コードの%E3%80%とは何です...
-
IEからEdgeへの移行に伴うIMEの...
-
VBA 文字に半角が含まれて...
-
EXCELからCSVにすると余計なカ...
-
Excelについて質問です。 セル...
-
xmlファイル内の文字列置換
-
WORDで改ページすると時々グレ...
-
[VBA][Excel]クリップボードか...
-
Excel VBAでPDFファイルをMicro...
-
住宅にカナを入力する際に丁目...
-
全角英数字の必要性が理解できない
-
エクセルでの”々”の扱い
-
カンマ区切り
-
COBOL・全角判定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マッチングアプリで新しくアカ...
-
正規表現
-
正規表現の実行レポートは作成...
-
タグを正規表現で完全に削除
-
この正規表現の意味は?
-
謎の半角■文字を正規表現で文字...
-
文字同士の比較~抜き出し
-
文字のマッチングについて
-
Perlで別ファイルから文字列の抽出
-
/ [ 【 の文字をマッチさ...
-
置き換えについて
-
正規表現 \\b123bと^123$は同じ?
-
perlで記号除去を行いたいので...
-
リナックスの grepコマンド ...
-
正規表現で2種類ある括弧を区別...
-
記号とあらば、1文字でも全て...
-
perlのマッチでマッチしたい物...
-
正規表現の展開
-
パイプ以外をエスケープしてマ...
-
3回以上連続する文字(どんな...
おすすめ情報