Antworten:
Verwenden Sie cut
. Z.B. um die ersten 4 Zeichen jeder Zeile zu entfernen (dh mit dem 5. Zeichen zu beginnen):
tail -f logfile | grep org.springframework | cut -c 5-
grep --line-buffered "org.springframework
, um dieses Problem zu lösen.
Sie können verwenden cut
:
cut -c N- file.txt > new_file.txt
-c:
Zeichen
file.txt:
Eingabedatei
new_file.txt:
Ausgabedatei
N-:
Zeichen von N bis Ende werden ausgeschnitten und in die neue Datei ausgegeben.
Kann auch andere Argumente haben wie: 'N', 'N-M', '-M', was das n-te Zeichen, das n-te bis m-te Zeichen bzw. das erste bis m-te Zeichen bedeutet.
Dadurch wird die Operation für jede Zeile der Eingabedatei ausgeführt.
tail -f logfile | grep org.springframework | cut -c 900-
würde die ersten 900 Zeichen entfernen
cut
verwendet 900-, um das 900. Zeichen bis zum Ende der Zeile anzuzeigen
Wenn ich das alles durch grep leite, bekomme ich nichts
Ich denke, dies awk
wäre das beste Werkzeug, da es die erforderlichen Zeichenfolgenmanipulationsfunktionen für gefilterte Zeilen sowohl filtern als auch ausführen kann:
tail -f logfile | awk '/org.springframework/ {print substr($0, 6)}'
oder
tail -f logfile | awk '/org.springframework/ && sub(/^.{5}/,"",$0)'
Hier ist eine einfache Funktion, die in Bash getestet wurde. Der erste Parameter der Funktion ist die Zeichenfolge, der zweite Parameter ist die Anzahl der zu entfernenden Zeichen
function stringStripNCharsFromStart {
echo ${1:$2:${#1}}
}