文字列内のすべての単一引用符を、sedを使用して2つの単一引用符に置き換えたいとします。しかし、文字列に&が含まれている場合、sedコマンドはそれ以降の単一引用符を置き換えません。 これについていくつかご意見をお寄せください。sedを使用してエスケープする方法&
5
A
答えて
13
あなたは入力には何もをエスケープする必要はありません。
$ echo "123 ' foo & b'ar" | sed "s/'/''/g"
123 '' foo & b''ar
しかし、s
コマンド&
の「交換」部分には特別な意味を持っている:それは試合を」という意味します。必要に応じて、エスケープする必要のある他のすべてのように\
で
$ echo "123 ' foo & b'ar" | sed "s/'/&&/g"
123 '' foo & b''ar
エスケープそれを::上記のコマンドは以下のように書き換えることができる理由です
それはあなたが投稿した場合に答えるために簡単です$ echo "123 ' foo & b'ar" | sed "s/'/'\&'/g"
123 '&' foo & b'&'ar
5
あなたのコードですが、私はアンパサンドをエスケープしていないと思います。リテラルアンパサンドを使用する場合は&
を\&
に変更してください。
好奇心が強い場合は、The sed FAQの3.1.2節を参照してより詳細な説明をしてください。
0
それは私
bash>echo "'This is a string with 'single quote' & '&'" | sed "s/'/''/g"
''This is a string with ''single quote'' & ''&''
関連する問題
- 1. 無効なコマンドコード。期間をエスケープしてもsedを使用
- 2. mac os x(BSD)sedでプラス記号をエスケープする方法は?
- 3. sedと組み合わせてtailを使用する方法。
- 4. mod_rewrite用の.htaccessでregexを使って "?"をエスケープする方法
- 5. sedを使用してパターン間で文字を置き換える方法
- 6. 変数をsed検索パターンで使用する方法
- 7. grepを使用してnon-usa、en、ASCII文字をエスケープする方法は?
- 8. sedを使用して<? <?php
- 9. は^でsedを使用して
- 10. Boost Regexで使用する文字列をエスケープする方法
- 11. バックスラッシュをエスケープする方法
- 12. Sedを使用してテキストファイルから行を削除する
- 13. sedを使用して最後のコンマを削除する
- 14. sedを使用してJavaプロパティファイル内のプロパティを更新する
- 15. sedを使用してcrontabを編集する
- 16. AWK:エスケープ文字を使用して文
- 17. Python - string.replaceを使用して二重引用符をエスケープする
- 18. sedを使用して一致するパターンの前に行を挿入する方法
- 19. sedを使用してコードパターンを削除しますか?
- 20. regexとsedを使用してIPをフィルタリングします
- 21. sedを使用してテキストを切り取る
- 22. sedを使用してHTMLタグのコンテンツを置き換える
- 23. SEDを使用して[]カッコを置き換えるには
- 24. OSX sed: `s`操作の2番目のフィールドでエスケープ文字を使う方法は? OSX上で
- 25. sed:代替パターン内のエスケープされていない改行?
- 26. sedまたはPerlを使用してxmlファイルから無効な文字を削除する方法
- 27. sedでワイルドカードを使用
- 28. ワイルドカード付きSEDを使用
- 29. FORループでパラメータを使用するときのパーセント(%)をエスケープする方法は?
- 30. 二重引用符をパラメータとしてNUnit TestCaseにエスケープする方法は?
のために働いてねえ、私は '&'私の出力文字列内の文字列を置換します。私は、ウェブ上のさまざまな回答に基づいて ''& "、' \& '、' \\& '、' \\\& '、' "\& '" 'を試しましたが、 – Ava
'\&'は私のために働きます。たとえば、 'sed" s/amp/\&/ g "'を使って 'amp'のすべてのインスタンスを '&'に置き換えることができます。それでも問題が解決しない場合は、入力文字列とコードで新しい質問を投稿する必要があります。 –
そうです。私は変更を持っていない別のファイルを使用していた:( – Ava