すべてのスラッシュ '/'をバックスラッシュ '\'に置き換える必要があります。文字列内である文字を別の文字に置き換えたり、逆の文字を文字列に置き換えたりします。
私の素朴な解決策はtr
でこれを行うことですが、その後、私は、私は考えていないプレースホルダ文字は、非常にきれいである必要があります。
tr '/' '¢' | tr '\\' '/' | tr '¢' '\\'
と、これはまた、唯一の限りAが表示されませんように動作私の意見では、私の場合はおそらく十分でしょうが、だれが知っていますか?もちろん、sed
を使用することで、この同じアイディアをより堅牢にしてから、 '¢'を何らかの任意のランダムな文字列( '½|#&¬_$'など)に置き換えることは簡単です。
しかし、これを達成するための単一のbashコマンドがあるかどうかを知りたかったので、これを短く、読みやすく、堅牢にしました。多分sed
はこれを箱から出すことができますか?
この操作の正しい名前は何ですか。 '双方向の置き換え'のように。もし私のGoogle検索がおそらくより有益だろうと分かったら。私はまた 'スワップ文字'を試みたが、私は定期的なものを交換することしか見つけなかった。
ありがとうございます!多分もっと一般的なこと(私がこれから学んだこと)があることを、あなたがそこに加えることができるかもしれません: 'tr'置換は要素ごとに起こります。 'tr ab xy'では 'a'が 'x'に置き換えられ、 'b'が 'y'に置き換えられ、' tr ab ba'は 'a'を 'b'に置き換えます。それは私が 'tr'に関して欠けていたもっと一般的なことでした。バックスラッシュの例は、エスケープのために少し残念ですが、これは実際に私の問題ではなく、種類の混乱を招くことであり、それによって答えが得られました。 – dingalapadum
あなたの答えを編集して上記のものを追加すると、私はそれを受け入れることができます(明日) - それはまた、より良いタイトルに適合するでしょう。 Btw。私は編集が好きです – dingalapadum