GNU/Linux >> Linux の 問題 >  >> Linux

特殊文字でSedを使用していますか?

このようなXMLファイルでいっぱいのディレクトリがあります。そのために「オフセット」要素番号の値を1から他の番号に変更したいと思います

$ cat my.xml
      <offset xmlns="">1</offset>

このsedコマンドのさまざまな組み合わせを作成しましたが、エラーなしで実行しようとしたものはありませんでした。一部の文字をエスケープする必要があることは間違いありませんが、試した文字は常にエラー(「予期しないトークン」、「不明なオプション」など)で終了します。また、実際には式ではないため、-eフラグなしで試しました。

sed -i -e s/<offset xmlns="">1</offset>/<offset xmlns="">99</offset>/ *.xml

助けていただければ幸いです。

承認された回答:

これを試してください

$ sed 's~<offset xmlns="">1~<offset xmlns="">99~g' file
          <offset xmlns="">99</offset>

入力にスラッシュが含まれている場合は、別のsed区切り文字を使用してください。


Linux
  1. printf での色の使用

  2. 「less」コマンドの使用中にUnixで特殊文字を表示する

  3. sedを使用してテキストを同じ長さに置き換えます

  1. printfを使用しているときに、シェルスクリプトで特殊文字をエスケープする方法は?

  2. 名前に特殊文字を含むファイルでの find および tar の使用

  3. ddを使用してFFでファイルをパディングする方法は?

  1. Sedコマンドで一度に複数のパターンを使用する

  2. Notify-Send With Cronを使用していますか?

  3. 「sed」を追加しますか?