2016-09-01 2 views
1

Wie grep für eine Datei in einem Verzeichnis, das den Inhalt und die Zeile direkt darüber entspricht?Grep für eine Datei, die das Muster und die Datei darüber in einem Verzeichnis mit grep

Zum Beispiel:

Ich habe unter Dateien im Verzeichnis

abc 

***bbc*** 

**ftd** 

ctd 

###ls -ltr | grep -i ftd 

Output beide ftp zurückkehren sollte und bbc.

Ich verwende Solaris 10 auf meinem Computer.

Ich kann keine zusätzlichen Pakete auf meinem Rechner installieren.

+0

ftp sicher nicht ftd? – snr

+0

Yeah ... es sollte ftd sein – Yoganand

+0

hat deine 'grep' die' -B' Option? Wenn es verfügbar ist, 'ls -ltr | grep -B 1 -i ftd' – Sundeep

Antwort

2

Alle guten Ratschläge über nicht beiseite die Ausgabe von ls Parsen, kann dies tun, was Sie für Ihren speziellen Fall wollen:

ls -tr | awk '/^ftd$/{print prev ORS $0} {prev=$0}' 

Oh, und auf Solaris die awk Standard-in/bin ist alt, gebrochen awk das darf nie benutzt werden. Verwenden Sie stattdessen/usr/xpg4/bin/awk.

+0

Danke Ed für die Antwort ........ es funktioniert :) :) :). – Yoganand

+1

Gern geschehen, jetzt sehen Sie http://Stackoverflow.com/help/someone-answers für was als nächstes zu tun. –