2017-01-11 1 views
0

ファイル名に整数がないファイルのみを出力します。grep linuxコマンドファイル名に整数が含まれている場合は除外

例:

httpdocs/bak_2016-01-10-embed.php:function displayVideo 
httpdocs/bak_EMBED_embed.php:function displayVideo_flv($path,$au 

のみ2ファイルを表示します。

私は以下のコマンドを試していますが、動作していません。

egrep -r --exclude='[^0-9]+\.*' "n displayVideo" 
+1

[編集ヘルプ](http://stackoverflow.com/editing-help)をご覧ください。 – Cyrus

+0

してください:grep -v -E "[0-9] +" –

+0

@BalazsVago完全なコマンドについて言及してください。 –

答えて

1

問題は除外パターンが間違っていることです。 manページを1として

、そのベース名(ワイルドカードマッチングを使用して)GLOBにマッチし

--exclude = GLOB

スキップファイル。ファイル名グロブは、*、?、[...]をワイルドカードとして使用することができます。 と\を使用すると、ワイルドカードまたは円記号をそのまま使用できます。

  • +有効なグロブ文字ではありません。
  • globのクラスを無効にするには、[!...]を使用します。[^..]は、正規表現の構文です。

  • More about globbing


代わりにあなたが

$ egrep -r --exclude=*[0-9]* "n displayVideo" 
  • *[0-9]*を書くことができます。このパターンは、その中に少なくとも1桁が含まれているすべてのそれらのファイル名と一致します。
+0

ニースその作業....... :) –

+0

しかし、+は1回以上の繰り返しを意味するとき、なぜ以下のパターンが機能しないのですか? --exclude = * [0-9] + * –

+0

@amitsingh以前にはうまくいかなかった理由についての説明を追加しました。それが役に立てば幸い。 – nu11p01n73R

関連する問題