Wie zeige ich nur den letzten Absatz des Textes in einer Datei mit cat an?

2021
Tom Scott

Ich bin in der Schule für eine Aufgabe herausgefordert worden und finde die Antwort nirgends. Ich habe eine Textdatei mit dem Namen tomtextfile, und die Frage lautet "Verwenden Sie den cat- Befehl (entsprechend modifiziert), um nur den letzten Absatz Ihres Textes anzuzeigen . Wie ist das möglich?

-1
Ich bin mir ziemlich sicher, dass dies unmöglich ist, wenn Sie nur "Katze" verwenden. Sind Sie sicher, dass Sie keine zusätzlichen Werkzeuge verwenden dürfen? (wie "sed", "awk" oder "cut") mtak vor 7 Jahren 2
Es heißt nur, dass ich es modifizieren kann, vielleicht etwas mit ** Schwanz ** zu tun? Tom Scott vor 7 Jahren 0
Wenn es hilft, war die vorherige Frage: Verwenden Sie den Befehl ** cat **, und zwar entsprechend modifiziert, um den Inhalt der Tomtext-Datei anzuzeigen, wobei das Auftreten eines bestimmten von Ihnen ausgewählten Wortes hervorgehoben wird. Die Antwort lautete: 'cat tomtextfile | grep mein ' Tom Scott vor 7 Jahren 0
Ja, Sie dürfen verschiedene Befehle verwenden. Ich würde nicht sagen, dass zu einem anderen Befehl geleitet wird (grep in diesem Fall), einen Befehl * ändert *, aber das könnte ein Terminologieproblem sein. mtak vor 7 Jahren 2
Sie müssen erklären, wie die Textdatei aufgebaut ist. Handelt es sich bei einem Absatz beispielsweise um einen Satz von Zeilen, die durch eine leere Zeile getrennt sind, oder um eine durchgehende Zeile, die durch einen Zeilenumbruch abgeschlossen ist? Die Behandlung von Zeilenumbrüchen kann sich auf die Optionen auswirken, mit denen geändert wird, wie Absätze und Zeilen von den Befehlen in der Pipeline analysiert werden. Suncat2000 vor 7 Jahren 1
Sie posten Ihre eigene Antwort nicht als Teil einer Frage. Wenn Sie eine Antwort auf eine selbst gelöste Frage haben, posten Sie diese als Antwort. JakeGould vor 7 Jahren 2
Ich wette, du machst Spaß auf Partys. Ich fand die Antwort erst eine Woche, nachdem ich die Frage gestellt hatte, weil die Antworten falsch waren. Ich dachte, ich würde alle darauf hinweisen, dass ich sie gefunden habe, aber dann kommen Leute wie du. Lass es einfach aus, ich bin neu auf dieser Website. @ JakeGould Tom Scott vor 7 Jahren 0
@TomScott Die Art und Weise, wie diese Site funktioniert, besteht darin, dass die Leute Fragen und Antworten posten. Diese Site ist kein zufälliger Chatroom oder ein Message Board, in das die Leute nach dem Zufallsprinzip posten. Sie können Ihre Antwort an andere weitergeben, indem Sie ** eine Antwort posten. ** Wenn Sie der Meinung sind, ich weise nur darauf hin, lesen Sie bitte [lesen Sie sich die Funktionsweise dieser Website durch] (http://superuser.com/tour) ). JakeGould vor 7 Jahren 3

2 Antworten auf die Frage

2
n8te

Das sollte den Trick tun:

cat tomtextfile | awk -v RS = "" ' END '

2
Zumo de Vidrio

Eine weitere Option mit tac (reverse cat):

tac tomtextfile | grep "^$" -B1000000 -m1 | tac | grep -v "^$" 
Die Antwort war für mich: cat tomtextfile | Schwanz -n 1 Tom Scott vor 7 Jahren 0