Wie liste ich Textdateien ohne die Erweiterung .txt auf?

9

Wie kann ich beispielsweise replizieren:

ls *.txt

Wenn in meinen Textdateien die .txtEndung fehlt und die Erweiterungen in Bezug auf Erweiterungen genauso aussehen wie in vielen anderen Dateitypen?

Ist es alternativ möglich, nur die Dateien aufzulisten, die KEINE Dateierweiterung haben?

user82212
quelle

Antworten:

7

Um Dateien abzugleichen, die überhaupt keine Erweiterung haben, können Sie den Befehl verwenden

ls | grep -v '\.'

Um Dateien abzugleichen, die keine .txtErweiterung haben, können Sie den Befehl verwenden

ls | grep -v '\.txt'

Dadurch wird die Liste der Dateien im aktuellen Verzeichnis an übergeben grep, wodurch alle Dateinamen entfernt werden, die einen .(oder .txtfür den zweiten Befehl) enthalten.

Ich glaube
quelle
Danke dir! Dies beantwortete meine Frage. Ist es außerdem möglich, dasselbe grep-Tool mit anderen Befehlen zu verwenden? Zum Beispiel mit todos? (um Zeilenenden zu konvertieren)
user82212
1
Ja, grepkann mit jedem Befehl verwendet werden. Das |Symbol wird verwendet, um die Ausgabe von einem Befehl an einen anderen zu übergeben, und grepstimmt mit Zeilen überein, die bestimmten Text enthalten (oder nicht enthalten). Wenn Sie jedoch den Text ändern möchten (außer nur übereinstimmende Zeilen zu drucken), sollten Sie sich den sedBefehl ansehen .
iBelieve
Um nur Textdateien (außer Verzeichnisse und Binärdateien) zu finden, verwenden Sie:ls --classify | grep -v '/'.'*'
chaskes
6

Mit können ls -ignore="PATTERN"Sie Dateien von einem ls-Ergebnis ausschließen.

Zum Beispiel, ls --ignore="*.txt"um txt-Dateien zu ignorieren.

Vivas84
quelle
3

Negieren Sie einfach Ihr Muster (Hinweis: shopt -s extglobist erforderlich).

So zeigen Sie alle Dateien ohne Erweiterung an:

ls !(*.*)

txtVersuchen Sie Folgendes , um Nicht- Dateien anzuzeigen:

ls !(*.txt)
Kenorb
quelle
0

Der Befehl ls -SX1|lesswird nach Erweiterung in einer einzelnen Spalte sortiert und Dateien ohne eine werden nach oben verschoben. Für Verzeichnisse mit mehr als einigen Dateien wird empfohlen, weniger als im Beispiel durchzuleiten, um die Ausgabe auf einen Bildschirm zu beschränken, der gleichzeitig voll ist.

Elder Geek
quelle
0

Ich bevorzuge die Verwendung von grep für einfache Listungsvorgänge.

Um die Verwendung zu vermeiden grep,

Ich empfehle die Verwendung ls !(*.*), um Dateien ohne Dateierweiterung zu finden, und

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

um bestimmte Dateierweiterungen auszuschließen

Computerfreak
quelle