2016-07-18 4 views
-1

Ich habe drei Arten von DateienFinden Sie eine Datei mit einem Muster unter Verwendung Befehl find

  • Dateien mit XXXYYY.A [1-9] [0-9] * B; Beispiel: ABC.A10B
  • Dateien mit XXXYYY_random.A [2-9] [0-9] * B; Beispiel: ABC_random.A2B
  • Dateien mit XXXYY_test.A [1-9] [0-9] * B; Beispiel: ABC_test.A14B

Ich möchte alle Typ 1 und Typ 2 Dateien finden. Ich brauche nur XXXYYY_test.A1B vom Typ 3

ich den folgenden Befehl bash schrieb, dass alle *_test.A[0-9]*B Dateien

find . -name "*.A[1-9]*B" ! -name "*_test.A[2-9][0-9]*B"

Aber die obigen Befehl druckt zu tun.

Was ist der richtige Weg zu drucken Typ 1,2 und nur *_test.A1B vom Typ 3 in bash

Antwort

0

Wenn Sie Gnu-Version find dann können Sie find wie folgt verwenden: IF

find . -regextype posix-extended -type f -regex '.*\.A[1-9][0-9]*B$' 

Sie sind auf OSX dann verwenden Sie:

find -E . -type f -regex '.*\.A[1-9][0-9]*B$' 
Verwandte Themen