Vuoi migliorare questa domanda? Aggiungi dettagli e chiarisci il problema modificando questo post.
Chiuso 4 anni fa.
Migliora questa domanda
Ho una directory con nove file al suo interno.
- 1 che termina con
.bat - 2 che termina con
.bak - 4 che termina con
.txt - 2 che termina con
.xtxt
La mia domanda è:come faccio a elencare solo i file che terminano con .txt , ma senza utilizzare il punto. Quindi voglio visualizzare il 4 che termina con .txt , senza utilizzare il comando
ls *.txt
perché non voglio usare il punto per filtrare i file. Sto imparando i caratteri jolly al momento, quindi sono usati in questo. Penso di dover usare il ! comando in qualche modo ma non sono sicuro di dove usarlo.
Risposta accettata:
Non capisco perché non vuoi usare . . Comunque puoi usare qualche classe di caratteri invece dove . è incluso, ma non altri caratteri dalla tua directory, un buon candidato per questo scopo può essere [[:punct:]] :
LC_ALL=C ls -- *[[:punct:]]txt
Ho cambiato la lingua in C poiché le classi di caratteri dipendono da questo e ho aggiunto -- a ls opzione per elencare tutti i file che iniziano con - correttamente.
Definizione:
`[:punct:]'
Punctuation characters; in the `C' locale and ASCII character
encoding, this is `! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [
] ^ _ ` { | } ~'.