Zum Beispiel möchte ich vielleicht:
tail -f logfile | grep org.springframework | <command to remove first N characters>
Ich dachte, dass tr
die Fähigkeit haben könnte, dies zu tun, aber ich bin mir nicht sicher.
Verwenden Sie cut
. Z.B. So entfernen Sie die ersten 4 Zeichen jeder Zeile (d. h. beginnen Sie am 5. Zeichen):
tail -f logfile | grep org.springframework | cut -c 5-
sed 's/^.\{5\}//' logfile
und Sie ersetzen 5 durch die Zahl, die Sie wollen ... es sollte den Trick tun ...
EDIT if für jede Zeile sed 's/^.\{5\}//g' logfile
Sie können cut
verwenden:
cut -c N- file.txt > new_file.txt
-c:
Figuren
file.txt:
Eingabedatei
new_file.txt:
Ausgabedatei
N-:
Zeichen von N bis zum Ende werden ausgeschnitten und in die neue Datei ausgegeben.
Kann auch andere Argumente haben wie: 'N', 'N-M', '-M', was n-tes Zeichen, n-tes bis m-tes Zeichen bzw. erstes bis m-tes 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
zeigt mit 900- das 900. Zeichen am Zeilenende an
aber wenn ich all das durch grep leite, bekomme ich nichts
Ich denke, awk
wäre das beste Werkzeug dafür, da es die notwendigen Zeichenkettenmanipulationsfunktionen für gefilterte Zeilen filtern und ausführen kann:
tail -f logfile | awk '/org.springframework/ {print substr($0, 6)}'
oder
tail -f logfile | awk '/org.springframework/ && sub(/^.{5}/,"",$0)'