Risposte:
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.
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.
ls --classify | grep -v '/'.'*'
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.
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