「行頭」とかをちゃんと区別したいなら、
エスケープシーケンス(^[からアルファベットまで)をちゃんと除く必要がある。
カーソル移動とかあれば、行頭って何って話になるけど。

sed 's/^[[^a-zA-Z]*[a-zA-Z]//' hoge.dat | grep ^hello
^[ は当然エスケープ文字な。