Möchten Sie diese Frage verbessern? Fügen Sie Details hinzu und klären Sie das Problem, indem Sie diesen Beitrag bearbeiten.
Vor 4 Jahren geschlossen.
Verbessern Sie diese Frage
Ich habe ein Verzeichnis mit neun Dateien darin.
- 1 mit der Endung
.bat
- 2 mit der Endung
.bak
- 4 mit der Endung
.txt
- 2 mit der Endung
.xtxt
Meine Frage ist, wie liste ich nur die Dateien auf, die mit .txt
enden , aber ohne den Punkt zu verwenden. Also möchte ich die 4-Endung in .txt
anzeigen , ohne den Befehl
ls *.txt
weil ich den Zeitraum nicht verwenden möchte, um die Dateien herauszufiltern. Ich lerne im Moment Platzhalter, also werden sie hier verwendet. Ich glaube, ich muss den !
verwenden Befehl irgendwie, aber ich bin mir nicht sicher, wo ich ihn verwenden soll.
Akzeptierte Antwort:
Ich verstehe nicht warum Sie möchten .
nicht verwenden . Wie auch immer, Sie können stattdessen eine Zeichenklasse verwenden, wo .
enthalten ist, aber andere Zeichen aus Ihrem Verzeichnis nicht, ein guter Kandidat für diesen Zweck kann [[:punct:]]
sein :
LC_ALL=C ls -- *[[:punct:]]txt
Ich habe das Gebietsschema in C
geändert da Zeichenklassen davon abhängen, und --
hinzugefügt zu ls
Option, um alle Dateien aufzulisten, die mit -
beginnen richtig.
Definition:
`[:punct:]'
Punctuation characters; in the `C' locale and ASCII character
encoding, this is `! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [
] ^ _ ` { | } ~'.