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 `! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [
] ^ _ ` { | } ~'.