Extrahiert die letzten 10 Zeilen einer Datei, die "foo" entsprechen

7

Ich möchte die letzten zehn Zeilen, die ein spezifisches Wort wie "foo" in einer Datei enthalten, in eine neue Textdatei schreiben, die nach der Instanz boo.txt benannt ist.

Wie kann ich dies in der Eingabeaufforderung eines Unix-Terminals erreichen?

    
virtue 27.03.2011, 11:20
quelle

2 Antworten

18

Sie können grep und tail verwenden:

%Vor%

Die Standardanzahl von Zeilen, die von tail gedruckt werden, ist 10, daher können Sie den -n 10 -Teil weglassen, wenn Sie immer so viele möchten.

Die > Umleitung wird boo.txt erstellen, wenn sie nicht existiert. Wenn es vor dem Ausführen vorhanden war, wird die Datei zuerst abgeschnitten (d. H. Geleert). So wird boo.txt in jedem Fall höchstens 10 Zeilen Text enthalten.

Wenn Sie an boo.txt anhängen möchten, sollten Sie die Umleitung so ändern, dass >> verwendet wird.

%Vor%

Sie könnten auch an head interessiert sein, wenn Sie nach den ersten Vorkommen der Zeichenfolge suchen.

    
Mat 27.03.2011, 11:22
quelle
1
%Vor%     
sarnold 27.03.2011 11:22
quelle

Tags und Links