Um alles in einer Datei nach einem grep-string würde
Gestern eine situation kam, wo jemand mich braucht, zu trennen die tail-Ende einer Datei, angegeben als alles nach einer bestimmten Zeichenfolge (aus Gründen der argument, "FOO"). Ich musste das tun, sofort, so ging mit der option, dass ich wusste, funktionieren würde und fluchtartig Den Richtigen Weg oder Die Beste Art und Weise, und ging mit den folgenden:
grep -n FOO FILE.TXT | cut -f1 -d":" | xargs -I{} tail -n +{} FILE.TXT > NEWFILE.TXT
Die Sache, nervte mich über diese wurde die Verwendung von xargs für ein singleton-Wert. Ich dachte, dass ich gehen könnte flex mein Google-Fu auf dieser war aber daran interessiert zu sehen, welche Art von Dinge, die die Leute in SO-land kam mit dieser situation
Du musst angemeldet sein, um einen Kommentar abzugeben.
ist, was geschieht mir Recht aus.
sed
ist, was Sie wollen. Mod +1.re
mit einem shell-variable? Zum Beispielfoo="my pattern"; sed -n '/$foo/,$p' file
funktioniert nicht, da der'
verhindert, dass die shell-Erweiterung, undsed -n "/$foo/,$p" file
funktioniert nicht, weil die shell versucht zu erweitern$p
werden, was zu Fehlersed: -e expression #1, char 27: unexpected
,"Haben Sie halten nur mit grep-s '--after-context' - argument?
Etwas wie, dieser sollten den trick tun, mit einer ausreichend großen Zahl an Schwanz am Ende der Datei:
--after-context=$(wc -l < FILE.TXT)
wirdÄhnlich geekosaur die Antwort von oben, aber diese option schließt, anstatt beinhaltet die abgestimmte Linie:
Fanden diese hier nach dem Versuch, die oben genannte option.