\\\\\\\\server\\\path1\\\\path2\\\\ with \\\\server\\path1\\path2\\
私の仕事はinの複数の項目を置き換えることですmyfile.txt
(追加のバックスラッシュを削除します)。
これを達成するためにsedを試しましたが、置き換える項目が見つかりませんでした。
sed 's:\\\\server\\path1\\path2\\:\\server\path1\path2\:g' myfile.txt
また、バックスラッシュをエスケープしようとしましたが、置き換える項目が見つかりませんでした。
sed 's:\\\\\\\\server\\\\path1\\\\path2\\\\:\\\\server\\path1\\path2\\:g' myfile.txt
愚かな質問かもしれませんが、本当に混乱しています。コマンドでこれを行う方法をどこでも見つけましたが、試したことは何も機能しませんでした。
答え1
あなたはそれを使用することができます
sed -e 's,\\\\,\\,g' -e 's/^\\\([^\\]\)/\\\\\1/'
(2番目の部分はユースケースに応じて望む\something
かも\\something
しれませんし、望ましくないかもしれません。)
そのように:
\\something\already\ok stays ok (thanks to the 2nd part)
\\\\something\\like\\this becomes \\something\like\this
2番目の部分が省略された場合、
\\something\like\that becomes \something\like\that , which is wrong