cutコマンドのbオプション

今日cutコマンドでレコードを分割してたところ、どうも位置がでたらめになっている。固定長レコードのファイルなのに、

head -1 ${FILE} |wc -c

で数えるとレコード長(改行除く)が全然違ってる。よくよく考えてみると、そのファイルは文字コードをEBCDECからS-JISに変換して作成されたファイルなのだけれど、実は文字化けしている部分があって、表示されていないバイトや改行コード扱いになっている文字があるっぽい。

grep 'XXXXX' |cut -c1-10 > output_file

みたいなことをしていたので、grepしたときにS-JISに扱われない文字が落ちたらしい。で、ああでもない、こうでもないとやっていたが、cutコマンドに-b(バイト位置)オプションがあることに気づいて一件落着。情けない。