Wie kann ich ein Dotfile bearbeiten?


0

Es ist auf einem Dotfile

Mein Verzeichnis enthält:

$ ls -A    
.dotfile20091021   file20091020       file20091021

Ich möchte ALLE Dateien auflisten, deren Name 20091021 enthält.

Wenn ich renne:

$ ls -A *20091021*    
file20091021

Wenn ich renne:

$ ls -A .*20091021*    
.dotfile20091021

Kann ich beide Dateien mit einem einzigen "ls" -Befehl abrufen?


Schon mal was von 'grep' gehört?
Tim Post

Antworten:


1

Laut diesem Link gibt es eine Bash-Option für Glob Dot-Dateien:

shopt -s dotglob

Wenn Sie bash verwenden, müssen Sie danach nur noch Folgendes tun:

ls -A *20091021*

(Kann hier nicht getestet werden)


4
ls -A1 | grep "20091021"

Ich denke, das ist vielleicht das Beste, da es nur auf der sstandard ls-Ausgabe und dem grep-Tool basiert, die beide weit verbreitet sind. JF
jfmessier

2

Sie können es einfach tun

ls -a *20091021 .*20091021

(Halten Sie sich strikt an Ihre Anfrage, dass Sie dies in einem einzigen tun möchten ls)


1
Dies hängt von der Shell für die Glob-Erweiterung ab.
Tim Post

/ bin / sh kann auf viele Dinge verweisen, von Distribution zu Distribution :)
Tim Post

Es ist nicht so sehr, dass es möglicherweise nicht so gut funktioniert, als dass es zu Fehlern kommt, wenn der Glob nicht mit irgendetwas übereinstimmt.
Matthew Scharley

0

Sie verlassen sich auf die von Ihnen verwendete Shell, um die Glob-Erweiterung durchzuführen.

ls -lah | grep \.foo

.. könnte Ihnen helfen, dies auf tragbare Weise zu klären.

Zum Beispiel:

user@tower:~ ls -lah | grep \.mozilla
drwx------  3 root root 4.0K 2007-11-14 06:17 .mozilla
user@tower:~    

Siehe, die Kraft der Pfeifen :) Erweitern ist eine Übung für den Leser. shopt ist nicht portierbar und funktioniert auf Systemen, die eine ausschließlich POSIX-Shell verwenden (z. B. dash), nicht mehr. Es ist besser, es einfach und tragbar zu schreiben. Oder Sie laden Ihr bewährtes Skript auf eine Box, auf der eine andere Distribution läuft, und sehen zu, wie es schrecklich kaputt geht.

Hinweis: Jede Shell führt eine Glob-Erweiterung auf ihre eigene Weise durch, die weitgehend durch ihre Lizenz bestimmt wird. Bitte, bitte, bitte vermeide Bashismen. Ubuntu gab Zehntausende von Dollar aus, um die in seinem Produkt enthaltenen Produkte loszuwerden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.