2016-05-25 11 views
1

私はgrepを作成しようとしています.eplファイル名やファイルパスを特定のファイルに見つけることができます。grep一重引用符と二重引用符を文字列に入れます。

私はfollwoing regexs

パート1試してみました:使用REGEXをgrep -rEco "\/(.+)\.epl|(.+)\.epl" ./index.epl 結果を得、私はそれを一致させたいしかし

url => 'xyz.epl 
    url => 'xyz.epl 
    url => 'xyz.epl 
    url => "packet/xyz.epl 
    url => "/web/abc/xyz.epl 
    url => qq{/web/abc/xyz.epl 
    url => '/web/abc/def/xyz.epl 
    url => '/web/abc/def/xyz.epl 
    url => 'xyz.epl 
    url => 'xyz.epl 
    $url = "/web/abc/def/xyz.epl 
    var requestURL = "xyz.epl 
    var requestURL = "xyz.epl 
    <a style="float:left;" href="xyz.epl 
    [- Execute('components/xyz.epl 
    Welcome, <a href="xyz.epl 
    [- Execute('components/xyz.epl 
    <a href="xyz.epl 
    [- Execute(`'components/xyz.epl` 

のみ

(または、先行する引用符なし)以下
'xyz.epl(OR xyz.epl) 
    'xyz.epl 
    'xyz.epl 
    "packet/xyz.epl(OR packet/xyz.epl) 
    "/web/abc/xyz.epl(OR "/web/abc/xyz.epl) 
    /web/abc/xyz.epl 
    '/web/abc/def/xyz.epl 
    '/web/abc/def/xyz.epl 
    'xyz.epl 
    'xyz.epl 
    "/web/abc/def/xyz.epl 
    "xyz.epl 
    "xyz.epl 
    "xyz.epl 
    'components/xyz.epl 
    "xyz.epl 
    'components/xyz.epl 
    "xyz.epl 
    'components/xyz.epl 

私は試してみました。grep -rEoc '\/(.+)\.epl|[\"\'](.+)\.epl' しかし、 unmatched '.エラー

私は正規表現を囲む引用符を削除し、私は正しい所望の出力を達成するために私を助けてください Badly placed()'s.

を得ました。何の文字を伝えるについては、ファイル名の一部として受け入れられている方法

+0

があなたの元の入力データのサンプルを表示することができたのでしたか? – anubhava

+0

引数としてそれはない-oあなたはオプションを使用する場合 '-o line.'別々の出力に、そのような各部分と一致した行の唯一のマッチ(空でない)部品 印刷し、--only-マッチングいいえ、私は機密保持のために申し訳ありません。私はできません。私は提供された情報が十分だと思う。 – AnyaK

答えて

1

私は2つの別々のソースtrhough私の質問への答えを見つけました。 説明がありますhereです。 他の一つは

set quote='"'; grep -E "\/(.+)\.epl|['${quote}](.+)\.epl" /index.epl 

セットの引用は、トリック

0

grep -Eo "[0-9a-zA-Z/]*.epl" ./index.epl 
+0

この場合、 'E'フラグは不要です(害はありません)。もっと安全な方法は、実際にeplの前にピリオドがあることを保証するために 'grep '[0-9a-zA-z /] * [。] epl' index.epl'です。しかし、パターンに*有効なファイル名があれば、ほぼすべての文字がファイル名の一部になる可能性があるので、これは機能しません。 – user1934428

関連する問題