私はsedを使用しています。私の知る限りでは正しい正規表現を使用していましたが、sedは何もしませんでした。 sedが理解できない\s+
を使用していたことが判明し、[ ]+
に切り替えたときに機能しました。
要約すると、私は正規表現を作成しました。それを機能させるには、ほとんどすべてをエスケープし、空白の\s
を削除する必要がありました。これらすべてを回避するモードがあるようです-r
だから私は尋ねたかった:
-r
でないのはなぜですか?すべてを脱出するためになぜそんなに多くのトラブルに行かなければならなかったのですか?man
は、オプション--posix
があり、「POSIX.2 BREをサポートする必要がある」と言っていますが、これは何を意味していますか? NFA/DFAモード?Re 1)答えは、数十年にわたって改善された他のツールと同じです。 :)
デフォルトの動作を変更して既存のスクリプトを壊したくない場合。
Re 2)それはマッチングエンジンとは何の関係もありません。サポートされている正規表現のセットの問題です。 POSIX BREは「基本正規表現」を意味します。
ポイント2について:gnu sed
は、デフォルトでGNU BRE
を使用します。POSIXBRE
を使用するには、--posix