2016-10-26 7 views
0

sedと一致するパターンでフラグを使用する方法が見つかりません。macで 'sed'と一緒にフラグを使用するには?

私は私に旗をしようとしています。しかし、私はそれがどのように機能するのか分かりません。

$ sed -i '' -n '/[email protected]/i d' res.txt 
sed: 1: "/[email protected]/i d": command i expects \ followed by text 

だから私は[email protected]をマッチさせたいと[email protected]

-i ''--in-file (without cache)dの削除のためです。

どのように私はフラグと、最終的にそれらの複数を使用することができますか?私が見つけたドキュメントでは、それはそうした方法でしたが、まったく動作しないようです。

+0

何をしようとしていますか?[email protected]をres.txtファイルに置き換えてください。 – UltrasoundJelly

+0

-iフラグを使用すると、stdoutに出力するのではなく、その場所でファイルを修正できます。 – UltrasoundJelly

+0

GNU sedには大文字小文字を区別しない一致のための 'I'フラグがあります(https://stackoverflow.com/documentation/sed/3120/address-and-address-range/13753/lines-matching-regular-expression-pattern#t = 201610260907523706883).. OSXではどういうこともありません。 – Sundeep

答えて

2

私はPerl使用します - その正規表現とオプションは、プラットフォーム間のすべてのsedのバージョンよりもはるかに直交し、一貫している:

「インプレース」編集
  • を意味-i
    perl -i -ne '/XXX.XXX.fr/i || print' res.txt 
    
    • -nは、入力行の周りにループを実行することを意味します。awkまたはsed
    • -e次のスクリプトを実行します。
  • +0

    これで動くようになります。ありがとうございました ! –

    関連する問題