事象
二つのファイルの比較作業として以下を実行した際に
$ 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オプションを利用することで対応ができます。
以上です。