0

標準入力から制御文字 (^C、^A など) を削除し、基本的な bash、perl、およびその他の Linux ツールのみを使用して標準出力に出力したいと考えています。

私が今していることは、

(something) | sed 's/[[:cntrl:]]//g' | (something else)

これまでは機能していましたが、タブレータも削除されることがわかったので、それらを保持したいと思います。

それで、何か他のものがありますか?

4

3 に答える 3

3

Skip/remove non-ascii character with sedからの2番目の回答を変更すると、この動作する sed スクリプトが得られました

sed 's/[^[:print:]\t]//'g

動作しているようです (「ASCII 以外」の部分は間違っていますが、Unicode は削除されません)。

LANG=en_US.UTF-8Unicode を機能させるには、環境変数をandとして設定LC_CTYPE="en_US.UTF-8"(およびエクスポート) する必要があります。

于 2013-04-17T01:46:28.017 に答える