2016-10-13 12 views

答えて

1

tr保つためにのみ印刷可能文字:

tr -cd "[:print:]" <test.txt > test2.txt 

tr削除オプションを使用します上の非印刷可能(-cオプションによって否定印刷基準)

あなたがにしたい場合は何か他のもの(例:X):でこれらの特殊文字を置き換えるsed

tr -c "[:print:]" "X" <test.txt > test2.txt 

を、あなたがそれを試みることができますXによって非印字置き換える:

sed -r 's/[^[:print:]]/X/g' text.txt > test2.txt 

それはいくつかの上で動作しますが、文字で> 127失敗した私のマシン上でのに対し、(私が試した1が▒として印刷可能であるので多分!)は完全に機能します。

インライン例(printfのバイトを示すために特殊文字+フィルタ+ ODを生成する):

$ printf "\x01ABC\x05\xff\xe0" | od -c 
0000000 001 A B C 005 377 340 
0000007 

$ printf "\x01ABC\x05\xff\xe0" | sed "s/[^[:print:]]//g" | od -c 
0000000 A B C 377 340 
0000005 

$ printf "\x01ABC\x05\xff\xe0" | tr -cd "[:print:]" | od -c 
0000000 A B C 
0000003 
関連する問題