Come elencare i file di testo senza estensione .txt?


10

Ad esempio, come posso replicare:

ls *.txt

quando i miei file di testo mancano del .txtfinale e per quanto riguarda le estensioni, appaiono uguali a molti altri tipi di file?

In alternativa, è possibile elencare specificamente solo i file senza estensione file?

Risposte:


8

Per abbinare i file che non hanno affatto un'estensione, puoi usare il comando

ls | grep -v '\.'

Per abbinare i file che non hanno .txtun'estensione, è possibile utilizzare il comando

ls | grep -v '\.txt'

Questo passerà l'elenco dei file nella directory corrente a grep, che rimuoverà tutti i nomi di file che hanno un .(o .txtper il secondo comando) in essi.


Grazie! Questo ha risposto alla mia domanda. Inoltre, è possibile utilizzare lo stesso strumento grep con altri comandi? Ad esempio, con todos? (per convertire i finali di riga)
user82212

1
Sì, greppuò essere utilizzato con qualsiasi comando. Il |simbolo viene utilizzato per passare l'output da un comando a un altro e grepcorrisponderà alle righe che hanno (o non hanno) testo specifico. Ma se vuoi modificare il testo (oltre a stampare solo le linee corrispondenti), dovresti dare un'occhiata al sedcomando.
iBelieve,

Per trovare solo file di testo (esclusi directory e file binari) utilizzare:ls --classify | grep -v '/'.'*'
chaskes

6

Con ls -ignore="PATTERN"te puoi escludere file da un risultato ls.

Ad esempio, ls --ignore="*.txt"per ignorare i file txt.


3

Annulla semplicemente il tuo modello (nota: shopt -s extglobè obbligatorio).

Per visualizzare tutti i file senza estensione:

ls !(*.*)

Per mostrare non txtfile, provare:

ls !(*.txt)

0

Il comando ls -SX1|lessordinerà per estensione in una singola colonna e i file senza uno verranno spostati in alto. Si consiglia di eseguire il piping di meno come nell'esempio per le directory con più di alcuni file per limitare l'output a uno schermo pieno alla volta.


0

Preferisco evitare l'uso di grep per semplici operazioni di quotazione.

Per evitare l'uso grep,

Consiglio di usare ls !(*.*)per trovare file senza estensione, e

ls -I "*.gz" -I "*.tz" o ls --ignore={"*.jpg","*.png","*.bmp"}

per escludere estensioni di file specifiche

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.