Zum Beispiel, wenn ich eine Datei mit grep gemacht, die mir nächstes Ergebnis geben:Wie caraces wie(), '* [] aus einem Grep-Ergebnis mit grep, awk oder sed entfernen?
16 Jan 07:18:42 (name1), xx.210.49.xx),
16 Jan 07:19:14 (name2), xx.210.xx.24),
16 Jan 07:19:17 (name3), xx.140.xxx.79),
16 Jan 07:19:44 (name4), xx.210.49.xx),
16 Jan 07:19:56 (name5), xx.140.xxx.79),
, dann, wie awk oder grep sed alle außer Datum Namen und IP zu entfernen wie folgt aussehen:
16 Jan 07:18:42 name1 xx.210.49.xx
16 Jan 07:19:14 name2 xx.210.xx.24
16 Jan 07:19:17 name3 xx.140.xxx.79
16 Jan 07:19:44 name4 xx.210.49.xx
16 Jan 07:19:56 name5 xx.140.xxx.79
Mein grep Befehl wie folgt aussehen:
grep 'double' $DAEMON | awk -F" " '{print $2" "$1" "$3" "$8" "$10}' > $DBLOG
Thx.
\ Ihr Freund –
Wenn Sie nicht zu manipulieren Felder wurden, sed wäre definitiv der einfache Weg zu gehen. 'sed -n '/ double/s/foo/bar/p'' druckt alle Zeilen aus '' mit 'double' und' foo' in 'bar'. –
Cascabel
Es ist normalerweise nicht notwendig, das Feldtrennzeichen auf ein Leerzeichen zu setzen, da dies standardmäßig eingeschlossen ist. Sie können 'awk '{print $ 2, $ 1, $ 3, $ 8, $ 10}'' plus die anderen Dinge wie '/ double /' und 'gsub()' hinzufügen. –