Wenn ich eine Protokolldatei habe und nur den Text zwischen 1234 und 9876 in eine andere Datei kopieren möchte, wie kann ich das einfach tun?
Wenn ich eine Textdatei wie diese habe:
idsfsvcvs sdf sdf e e sd vs d s g sg s vc d
slkdfnls 1234 keep me text 9876 das a g w eg dsf sd fsdf
sdfs fs dfsdf
sdfsdf sdf
sdf s fs
dfsf ds
Ich möchte so etwas tun
$ getinfo "1234" "9876" Protokoll
$ cat log
Behalte mich im Text
Dies hängt von Ihrem Dateiinhalt ab. Sie können mit etwas Einfachem beginnen wie:
Dies funktioniert für das bereitgestellte Beispiel. Sie können daran arbeiten, um bei Bedarf andere Datenformate abzudecken. Sie können die Ausgabe auch durch Anhängen in eine Datei umleiten
> /path/to/output
quelle
Für das, was es wert ist, würde ich Folgendes tun:
grep 1234.*9876 > myfile
vim myfile
:%s/^.*1234//
(alles bis 1234 löschen):%s/9876.*$//
(alles nach und einschließlich 9876 löschen)Nicht perfekt oder der beste Weg, aber leicht zu merken, wenn Sie oft vim verwenden.
quelle