Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> sistemi >> Unix >> .

Qual è il comando per elencare tutti i file che terminano in piccole lettere unix?

Non è possibile elencare direttamente i file che terminano solo in lettere minuscole con un singolo comando e file di base. Ecco perché e come aggirarlo:

Perché è complicato:

* Globing di base: I gusci UNIX standard utilizzano i modelli di base globing (*,?, [], ecc.). Questi possono corrispondere a qualsiasi caso di carattere, ma non possono distinguere tra maiuscolo e minuscolo per il filtro specifico.

La soluzione:usando `find` e` grep`

Puoi combinare `finish` e` grep` per raggiungere questo obiettivo. Ecco come:

`` `Bash

Trovare . -Type F -print0 | grep -ez '^./[^/]*[a -z] \.? [^/]*$' | Xargs -0 ls -l

`` `

Spiegazione:

1. `Trova. -Type f -print0`:

- `Trova .`:Inizia a cercare nella directory corrente (` .`)

- `-type f`:cerca solo file normali

- `-print0`:stampe trovate file separati da caratteri null (più sicuri per nomi di file con spazi)

2. `grep -ez '^./[^/]*[A -z] \.? [^/]*$'`:

- `grep`:filtra l'output di` find`

- `-e`:abilita espressioni regolari estese per una maggiore flessibilità

-`-z`:tratta l'input come stringhe di terminazione null

- l'espressione regolare:

- `^./`:Corrisponde all'inizio della linea, seguito da "./" (per abbinare i percorsi relativi)

- `[^/]*`:abbina qualsiasi personaggio tranne "/" (assicurando che siamo ancora all'interno del nome file)

- `[A-Z]`:abbina una singola lettera minuscola

- `\.? [^/]*`:Corrisponde a un punto opzionale (`.`) seguito da qualche personaggio tranne"/"

- `$`:corrisponde alla fine della linea

3. `xargs -0 ls -l`:

-`xargs -0`:prende l'elenco dei file terminato null da` grep` e build gli argomenti di comando

- `ls -l`:elenca i file (è possibile modificarlo in qualsiasi comando che si desidera eseguire sui file filtrati)

Note importanti:

* File nascosti: Ciò troverà file nascosti (a partire da '.') Che soddisfano i criteri.

* Sensibilità al caso: L'espansione del nome del tuo shell potrebbe essere sensibile al caso e insensibile.

Fammi sapere se vuoi perfezionare ulteriormente la ricerca!

 

sistemi © www.354353.com