2016-11-01 2 views
-1

Ich schrieb den Befehl wieWie bekomme ich die richtige Ausgabe beim Anhängen von find, ls und grep zusammen?

find /path -daystart -mtime 0 | ls -lh -- $(grep -i "cmac*") | awk '{print $6,$7,$9,$8,$5}' 

Es gibt mir die Ausgabe , wenn eine Datei in diesem Verzeichnis (Pfad) verarbeitet wird d.h Datei verarbeitet wurde, wenn Sie diesen Befehl ausführen.

date filename timestamp space 
nov 1 cmac1234.txt 10:31 2.3M 

Es gibt die folgende Ausgabe, wenn keine Dateien im Pfad ist

mit CMAC Angabe
Total Ok 
....archive 
....inprogress 

Ich will nicht, dass das Archiv oder inprogress Details, ich möchte nur, wenn es keine Dateien ist es gibt null/leer zurück. Kannst du mir bitte dabei helfen?

HINWEIS: Ich möchte die Datei abrufen, die sich entweder in/path dir oder archive oder inprogress dir befindet.

+1

Bitte nehmen Sie sich einen Blick auf [Bearbeitungshilfe] (http://stackoverflow.com/editing-help). – Cyrus

+0

Code, der nicht tut, was Sie wollen, ist eine sehr schlechte Art zu erklären, was Sie * wollen * wollen. Was soll der 'Grep' dort erreichen? Was immer es ist, es tut wahrscheinlich nicht, was du denkst. – tripleee

Antwort

0

Ich denke, das das, was Sie wollen tun:

find /path -daystart -mtime 0 -type f -iname "cmac*" -exec ls -lh {}\; | 
    awk '{print $6,$7,$9,$8,$5}' 
+0

sollte die Option -name durch -iname (Name ohne Berücksichtigung der Groß-/Kleinschreibung) ersetzt werden, da der Befehl in der Frage grep -i –

+0

ja tatsächlich verwendet! Entschuldigung für die Aufsicht. – webb

0

Dank webb, aber es scheint, war es auch mir die erforderliche Leistung nicht geben.

Aber ich bekomme die richtige Ausgabe mit dem Befehl unten.

finden/Pfad -daystart -mtime 0 -iname "cmac *" -ls | awk '{Pflichtfelder}'

Thx, Janaranjan

Verwandte Themen