0

こんにちは、^[[1m (vim の表示による) を含むログファイルがたくさんあります。経由でログファイルの生活を見たい

tail -n 1000 -f logfile.log | grep <expression-for-escape-sequence>

太字の行のみを取得します。どのgrepオプションを使用する必要があるのか​​ わかりませんが、すでに次のことを試しました:

tail -n 1000 -f logfile.log | grep "\033\0133\061\0155"
tail -n 1000 -f logfile.log | grep "\033\01331m"
tail -n 1000 -f logfile.log | grep "\033\[1m"

ただし、機能しません...そして、logfile.logの最後の1000行に太字の行があります。

echo -e "\033\01331mTest\033\01330m" | grep ...

同じ結果... ;)

どんな助けにも感謝します!

4

2 に答える 2

2

$'...'シェルに\033エスケープシーケンスをESC文字に変換させるには、前にドル記号を付けた一重引用符を使用します。

tail -n 1000 -f logfile.log | grep $'\033\[1m'

マンバッシュから:

フォームの単語は $'string'特別に扱われます。単語はに展開されstring、バックスラッシュでエスケープされた文字がANSIC標準で指定されているように置き換えられます。

于 2010-09-02T21:46:57.103 に答える
0

これは機能します(POSIXシェルでは、必ずしもbashではありません)。

echo -e "\033\01331mTest\033\01330m" | grep "$(printf "\x1b\\[1m")"
于 2010-09-02T21:51:23.653 に答える