sed
私はBSDバージョン(LinuxのGNUバージョンほど良くないようです)を持つOS Xを使用しています。commandlinefu.comのすべての色除去技術動作しません。-r
OS Xにはないスイッチを交換してみ-e
ましたが、役に立ちませんでした。
OS Xからカラーフォーマットコードを削除するための確実な方法はありますか?カラー出力を削除するために実行されているコマンドは次のとおりです。
for concurrency in $(seq 1 50); do siege -f urls.txt -c $concurrency -t 5m >> results.csv ; done
sed
以下はCSV出力から色を削除する例です。
for concurrency in $(seq 1 50); do siege -f urls.txt -c $concurrency -t 5m | sed "s,\x1B\[[0-9;]*[a-zA-Z],,g" >> results.csv ; done
答え1
Bashの場合は、sedに適切なパラメータを渡す必要があると思います。
sed $'s,\x1b\\[[0-9;]*[a-zA-Z],,g'
または、他のシェルに移植しやすくするには、次のことを試すことができます。
sed "s,$(printf '\033')\\[[0-9;]*[a-zA-Z],,g"
Ctrl-vEscまたは、入力の代わりに入力を介してエスケープされたバイトを文字列に直接置きます\x1b
。
ただし、このsedステートメントはカラーコード以上を削除するため、CSIで始まる多くの制御シーケンスと一致する可能性があります。ページで「CSI」を検索してください。これ削除(または破壊)する他の制御シーケンスが何であるかを理解します。