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?

Dogbane
quelle
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)

Peter van der Heijden
quelle
4
ls -A1 | grep "20091021"
Matthew Scharley
quelle
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)

Raslebe
quelle
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.

Tim Post
quelle