grep brukes til å søke i en fil for å se om en linje samsvarer med et gitt regulært uttrykk. Imidlertid har jeg denne situasjonen - jeg vil skrive et regulært uttrykk som samsvarer med selve filnavnet (og ikke innholdet i filen). Jeg vil kjøre dette fra systemets rotkatalog for å finne alle filene som samsvarer med det regulære uttrykket.
For eksempel, hvis jeg vil finne alle VB-skjemafiler som starter med "f" og slutter med .frm, vil jeg bruke det regulære uttrykket - "f".
"f[[:alnum:]]*\.frm"
Kan grep gjøre dette? Hvis ikke, er det et verktøy som lar meg gjøre dette? Takk skal du ha.
Som Pablo sa, må du bruke find
i stedet for grep
, men det er ikke nødvendig å pipe find
til grep
. find
har den funksjonaliteten innebygd:
find . -regex 'f[[:alnum:]]\.frm'
find
er et veldig kraftig program for å søke etter filer etter navn og støtter søk etter filtype, dybdebegrensning, kombinere forskjellige søkeord med boolske operasjoner og utføre vilkårlige kommandoer på funnet filer. Se man-siden for find for mer informasjon.
find -iname "file_name"
Syntax :-
find -type type_descriptor file_name_here
type_descriptor typer:-
f: vanlig fil
d: katalog
l: symbolsk lenke
c: tegnenheter
b: blokkeringsenheter