というファイルがあります情報この行があります。
CSC/UT/USA/WBIMB/SAP/orders05:orders05/ORDERS05/NONE/ORDRSP/758
grepを実行しています(プラットフォームはAIX 6.1です)。
grep CSC/UT/USA/WBIMB/SAP/orders05:orders05/ORDERS05/NONE/ORDRSP/758 message
行を見つけて出力を表示します。
しかし、以下のようにワイルドカードを使用しようとすると
grep CSC/UT/USA/WBIMB/SAP/orders05:orders05/ORDERS05/.*/ORDRSP/758 message
この行が見つかりません。また、一重引用符/二重引用符を試してみました。動作しません。ここで何か抜けましたか?混乱しています。
答え1
メモ:AIXではこれをテストできませんでしたが、以下はGNU grepで動作します。
grep CSC/UT/USA/WBIMB/SAP/orders05:orders05/ORDERS05/.\*/ORDRSP/758 message
または:
grep 'CSC/UT/USA/WBIMB/SAP/orders05:orders05/ORDERS05/.\+/ORDRSP/758' message
これは、grepの基本正規表現でほとんどのメタ文字がエスケープされている場合にのみ特別な意味を持つためです。grep
マニュアルページから:
In basic regular expressions the meta-characters ?, +, {, |, (, and ) lose
their special meaning; instead use the backslashed versions \?, \+, \{,
\|, \(, and \).
答え2
努力する
egrep CSC/UT/USA/WBIMB/SAP/orders05:orders05/ORDERS05/*/ORDRSP/758 message