たとえば、次のことができます。
tail -f logfile | grep org.springframework | <command to remove first N characters>
tr
がこれを実行できる可能性があると考えていましたが、よくわかりません。
cut
を使用します。例えば。各行の最初の4文字を削除するには(つまり、5番目の文字から開始):
tail -f logfile | grep org.springframework | cut -c 5-
sed 's/^.\{5\}//' logfile
そして、あなたが望む数で5を置き換えます...トリックを行う必要があります...
EDIT if各行sed 's/^.\{5\}//g' logfile
の場合
cut
を使用できます。
cut -c N- file.txt > new_file.txt
-c:
文字
file.txt:
入力ファイル
new_file.txt:
出力ファイル
N-:
カットして新しいファイルに出力するNから最後までの文字。
「N」、「N-M」、「-M」のような他の引数も持つことができます。それぞれ、n番目の文字、n番目からm番目の文字、最初からm番目の文字を意味します。
これにより、入力ファイルの各行に対して操作が実行されます。
tail -f logfile | grep org.springframework | cut -c 900-
最初の900文字を削除します
cut
は900-を使用して、900番目の文字を行末まで表示します
しかし、このすべてをgrep経由でパイプしても、何も得られません
awk
は、フィルター処理された行で必要な文字列操作機能をフィルター処理および実行できるため、これに最適なツールだと思います。
tail -f logfile | awk '/org.springframework/ {print substr($0, 6)}'
または
tail -f logfile | awk '/org.springframework/ && sub(/^.{5}/,"",$0)'