284

たとえば、次のようにします。

tail -f logfile | grep org.springframework | <command to remove first N characters>

私はそれtrがこれを行う能力を持っているかもしれないと思っていましたが、私にはわかりません。

4

6 に答える 6

428

を使用しcutます。例えば。各行の最初の4文字を削除するには(つまり、5文字目から開始します):

tail -f logfile | grep org.springframework | cut -c 5-
于 2009-06-09T19:06:44.050 に答える
56
sed 's/^.\{5\}//' logfile 

そして、5を必要な数に置き換えます...それでうまくいくはずです...

各行の場合は編集 sed 's/^.\{5\}//g' logfile

于 2009-06-09T19:08:18.977 に答える
38

あなたが使用することができますcut

cut -c N- file.txt > new_file.txt

-c:文字

file.txt:入力ファイル

new_file.txt:出力ファイル

N-:Nから最後までの文字が切り取られ、新しいファイルに出力されます。

'N'、'NM'、'-M'は、それぞれn番目の文字、n番目からm番目の文字、1番目からm番目の文字を意味します。

これにより、入力ファイルの各行に対して操作が実行されます。

于 2015-07-06T08:24:02.793 に答える
5
tail -f logfile | grep org.springframework | cut -c 900-

最初の900文字を削除します

cut900-を使用して、行末に900番目の文字を表示します

ただし、これらすべてをgrepにパイプすると、何も得られません。

于 2009-06-09T19:04:58.280 に答える
4

awkフィルタリングと、フィルタリングされた行で必要な文字列操作機能の両方を実行できるため、これに最適なツールだと思います。

tail -f logfile | awk '/org.springframework/ {print substr($0, 6)}'

また

tail -f logfile | awk '/org.springframework/ && sub(/^.{5}/,"",$0)'
于 2017-02-11T17:18:57.287 に答える
4

これは、bashでテストされた単純な関数です。関数の1番目のパラメーターは文字列、2番目のパラメーターは削除される文字数です

function stringStripNCharsFromStart { echo ${1:$2:${#1}} }

使用法: ここに画像の説明を入力してください

于 2017-11-17T14:17:03.013 に答える