うまいぼうぶろぐ

linuxとhttpdとperlのメモ

scriptで取ったログをcolで変換すると怒られてテキストに変換できないときの対処

scriptで取ったログは入力したバックスペースや表示される(目に見えない)制御記号なども記録されるので

$ col -bx < typescript > log.txt

などとすれば良いんけど、端末の文字コードとテキストの文字コードが一致していないと(?)文字化けして怒られて、変換したテキストが全部でてこない。

$ col -bx < typescript
col: 無効または不完全なマルチバイトまたはワイド文字です
Script started on 2015&#495;01

(本来ならScript started から次の行も出てくる)

nkf、iconvなどで変換してからcolに食わしたらいけた。

$ nkf -w typescript | col -bx > log.txt

そもそもLANG=C にしてマルチバイトが出てこないようにしてればこんなこと考えなくてよかったかも。