搜索 / 并替换为 \/

搜索 / 并替换为 \/

这可能很简单,但我有一些文字

Aasfdsajdf/safdhglah(作为示例)

我希望它是

Aasfdsajdf\/safdhglah

我尝试了多个 sed 选项,但仍然找到了给出正确结果的选项。有什么建议请。

答案1

您需要转义特殊字符,例如/\通过在它们前面加上前缀\

sed 's/\//\\\//g' <file>

你可以看这里详细sed指南

答案2

echo "Aasfdsajdf/safdhglah" |sed 's/\//\\\//g'

答案3

sed实用程序的s(“替代”)命令可以使用以下命令来执行此操作

sed 's#/#\\/#g'

所以,

echo 'Aasfdsajdf/safdhglah' | sed 's#/#\\/#g'

会输出

Aasfdsajdf\/safdhglah

#表达式中的是sed分隔符,通常写为/。由于我们在这里处理替换/,因此我们使用另一个分隔符来避免牙签倾斜综合症

如果您正在使用bash并将字符串放在变量中,那么您可以使用

string='Aasfdsajdf/safdhglah'
printf '%s\n' "${string////\\/}"

得到相同的输出。这里我们使用${string//word/replacement}with wordbeing/replacementbeing \\/(即文字\和a /,就像sed替换中一样)。

相关内容