(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Linux】grep実行時に「無効な範囲終了です」というエラーになる

スポンサーリンク

事象

二つのファイルの比較作業として以下を実行した際に

$ grep -x -v -f /root/test2.txt /root/test1.txt

以下のエラーとなる。

grep: /root/test2.txt:128: 無効な範囲終了です
環境情報
$ grep --version
grep (GNU grep) 2.27

原因/解決策

正規表現で使用する特殊な文字(\、[、]、^、$、*、.など)が該当行に存在した。
特殊文字をエスケープせずに検索するためにFオプションを利用することで解消する。

$ grep -x -v -F -f /root/test2.txt /root/test1.txt

以下、補足です。

補足

該当行を見るとブラケットが入っていたので

[XXX]

同エラーとなっていました。

バックスラッシュ(\)を入れることでエスケープすることも可能ですが、ファイルのように何が記載されているか分からない場合はFオプションを利用することで対応ができます。

以上です。