我想用反斜槓'\'替換所有斜槓'/',反之亦然。將一個字符替換爲另一個字符,反之亦然
我天真的解決方案是tr
這樣做,但後來我需要一個佔位符,我不認爲是很漂亮:
tr '/' '¢' | tr '\\' '/' | tr '¢' '\\'
,這也只是只要有從未出現工作'¢'在我的輸入中,在我的情況下最有可能就足夠了 - 但是,嘿,誰知道?當然,通過使用sed
,然後用一些任意隨機的字符串替換「¢」(比如'½|#&'__''或其他),可以很容易地採用相同的想法並使其更加健壯。
但我想知道是否有一個單一的bash命令來實現這一點,這將使這個東西更短,更可讀和更強大。也許sed
可以開箱即用嗎?
雖然我們在這,這個操作的正確名稱是什麼?像'雙向替換'。如果我知道我的谷歌搜索可能會更有成效。我也試過'交換字符',但我只發現經常更換東西。
謝謝!也許你可以在那裏添加更普通的東西(我從中學到的)是:用'tr'替換髮生在元素方面。 'tr ab xy''a'被'x'取代,'b'被'y'取代,因此'tr ab ba'將用'b'取代'a',反之亦然。這是我對'tr'缺少的更一般的東西。帶反斜槓的例子有點不幸,因爲它是逃避的,這實際上不是我的觀點,而是混淆了這個問題(因此也就是答案)。 – dingalapadum
如果你編輯你的答案並添加上述內容,我很樂意接受它(明天) - 它也會更好地適應標題。順便說一句。我喜歡編輯 – dingalapadum