2016-06-28 20 views
0

\u2015を含む文字列を、以下の例のようなSEDコマンドに置き換える方法を知っている人はいますか?" u2015"を含む文字列を置き換える方法は?

sed -ie "s/some text \u2015 some more text/new text/" inputFileName 
+2

「\ u2015」が表すものによって異なります。 –

答えて

1

スラッシュをエスケープするだけで済みます。例はGNU sed version 4.2.1

$ echo "some text \u2015 some more text" | sed -e "s/some text \\\u2015 some more text/abc/" 
$ abc 

で正常に動作下にまた、あなたはmanページに従ってのみインプレース編集filesです-iフラグを使用する必要はありません。これはあなたが必要な正確に何ですが、多分あなたは、このようなユニコードエスケープを変換するnative2asciiツールを見てみる必要がある場合

-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. 
+1

スクリプトの前後に二重引用符を使用しないでください。常にsingleを使用してください。この場合、そうすると、それほど多くのエスケープが必要ないことがわかります。 –

-1

わかりません。

通常、ISO-8859-1で表示できないすべての文字をユニコード(\ uでエスケープ)で置き換えますが、逆変換もサポートしています。あなたはUTF-8 \u00abSome \u2015 string\u00bbを含む「入力」という名前でいくつかのファイルを持っていると仮定すると、

native2ascii -encoding UTF-8 -reverse input output 

を実行すると «Some ― string»と「出力」ファイルになります。

関連する問題