2013-07-08 20 views
5

バグですか、それとも説明がありますか?Sedコマンド - オプションフラグの順序は重要ですか? (-ir vs -ri)

私は回避策を探していないよではなく、なぜ-ir-ri事項の順序は...


次のデータを想像してみてファイルdata.txt

1, StringString, AnotherString 545 
2, StringString, AnotherString 723 
3, StringString, AnotherString 610 
4, StringString, AnotherString 118 
5, StringString, AnotherString 482 
に保存されていることに注意してください

希望文字列変換

コード

sed -ir 's/String+/Strung/g' data.txt <-- won't work 

sed -ri 's/String+/Strung/g' data.txt <-- will work 

Replace "StringString" with "Strung" 

私は、オプションフラグの順序は重要ではなぜ何らかの理由が表示されませんか?説明は?

Sidenotes:スイッチ-i -rは(+オペレータを可能にする)「拡張 正規表現」可能にするが、「場所にファイルを編集します」。 Ubuntu 12.10でsed 4.2.1 2010年12月を実行しています。

答えて

3

-irを実行する場合、 "r"はバックアップファイルの接尾辞にする必要があります。

この順番で必要な場合は、-i -rを実行する必要があります。

5

sed --helpまたはman sedを確認しましたか?

-i[SUFFIX], --in-place[=SUFFIX] 
       edit files in place (makes backup if extension supplied). 
       The default operation mode is to break symbolic and hard links. 
       This can be changed with --follow-symlinks and --copy. 
+0

Doing !!ああ、私はちょうどバックアップとして作成されたディレクトリに "data.txtr"と呼ばれるファイルを見つけました。私は接尾辞を区切るスペースを期待していましたが、今は意味があります。 – somethis

関連する問題