Gibt es eine Möglichkeit, ack
die gefundenen Ergebnisse nach Änderungsdatum zu sortieren? (Idealerweise wird das Datum neben dem Ergebnis angezeigt?). Es sieht nicht so aus, als hätte ack
es eine Datumsoption, aber nur für den Fall.
Wenn dies mit nicht möglich ist ack
, wie wäre es dann mit grep
oder mit einer Kombination von Werkzeugen?
tmp
oder ähnlichem helfen könnte. Das funktioniert möglicherweise nicht für jede Umgebung, aber ich denke, es könnte dieses Problem verhindern.Antworten:
Weder
ack
nochgrep
haben Sie eine Vorstellung von den Änderungsdaten einer Datei. Dazu müssen Sie zuerst die Liste der Dateien erstellen und anschließend danach sortieren.Sie können
xargs
die Ausgabe einesack
odergrep
mehrerer Befehle ausführen, die die Änderungsdaten enthalten. Für die Änderungsdaten können Sie dies verwendenstat
.Beispiel
HINWEIS: Bei dieser Methode werden nur die Namen der Dateien angezeigt, die Ihrer Abfrage entsprechen, sowie das Änderungsdatum.
quelle
Mit GNU-Tools:
Oder,
Diese nutzt
awk
den Dateinamen von den üblichen abzuscheidengrep
Ausgang undawk
ruftdate
die Dateien Datum abzurufen.grep
Sie können-H
sicherstellen, dass bei der Ausgabe ein Dateiname angezeigt wird, auch wenn nur einer in der Befehlszeile angezeigt wird.Als Beispiel für die Ausgabe:
Erklärung der
awk
Befehle-F:
Dadurch wird das Feldtrennzeichen
:
so festgelegt, dass das erste Feld der Dateiname ist. (Wir müssen hoffen, dass der Dateiname selbst keinen Doppelpunkt enthält.)"date -r \""$1"\" +\"%F %R\"" | getline d
Dadurch wird
date -r filename +"%F %R"
das Änderungsdatum der Datei in einer zum Sortieren geeigneten Form abgerufen. Das Datum wird in der Variablen gespeichertd
.print d,$0
Dies druckt die Daten, gefolgt von der Ausgabezeile von
grep
.quelle