grepにバイナリファイルだと怒られる
テキストファイルなのにgrepをかけると、バイナリファイルだと怒られる。
vi,cat,less,moreなど使えば読める。
#! /usr/bin/env ruby pat = ARGV.shift while gets do print if /#{pat}/ end
は動いた。
less file | grep pattern #OK cat file | grep pattern #OUT more file | grep pattern #OUT
なぜかlessだけ動く。
less file > dummy grep pattern dummy #OUT
これも動かない。
原因
fileの前半に変な文字列があった。(vi,lessで開くと^@で表記される。)
ある程度下の行に移動させると、grepが使える。
linuxにおけるバイナリファイルの判定はアバウトなのかもしれないと思った。