Come trovare i file in base alla lunghezza del nome del file in OS X 10.9.1?

2

È necessario trovare file / cartelle con nomi più lunghi dei caratteri n (OS X 10.9.1).

Potresti aiutarmi?

    
posta user65541 23.12.2013 - 19:53
fonte

3 risposte

2

Il modo più semplice è probabilmente usare il globbing:

find . -type f -name '???????????*'

Questo elencherà tutti i file con una lunghezza del nome di file superiore a 10 caratteri. Ci sono 11 punti interrogativi e l'asterisco corrisponde a quelli con una lunghezza maggiore. Modifica il numero di punti interrogativi in modo che corrispondano a quello che stai cercando.

Per maggiore o uguale a 10, usa ??????????* , o uguale a 10 usa ?????????? .

    
risposta data 23.12.2013 - 20:21
fonte
3

Puoi utilizzare il comando find con l'opzione -regex (espressione regolare). Questo è probabilmente meno efficiente del globbing, perché -regex corrisponde all'intero percorso.

find -E . \( -type f -or -type d \) -and -regex '.*/[^/]{11,}'

Precisamente, questo comando effettua le seguenti operazioni:

  • cerca ricorsivamente i file nella cartella corrente e nelle sottodirectory (puoi limitare la profondità con una clausola aggiuntiva -maxdepth n );
  • utilizza la sintassi avanzata ( -E ) per le espressioni regolari.
  • cerca file e cartelle ( -type f -or -type d )
  • corrispondenza regex: la stringa che segue l'ultima barra nel percorso del file deve essere di 11 caratteri o più.
risposta data 25.12.2013 - 22:51
fonte
1

Puoi anche solo filtrare l'output di find:

find .|awk -F/ 'length($NF)>=11'

-F imposta IFS , NF è il numero di campi e $NF è l'ultimo campo.

    
risposta data 27.12.2013 - 16:56
fonte

Leggi altre domande sui tag