如何替换shell中的特殊字符?

时间:2015-02-05 10:26:56

标签: shell

我有一个字符串:

sam1/0/2

我必须使用shell命令将其替换为:

sam-1/0/2/4:4

有任何帮助吗?谢谢

2 个答案:

答案 0 :(得分:0)

您需要在使用sed替换时转义这些特殊字符。

见下面的命令

sed "s/sam1\/0\/2/sam-1\/0\/2\/4\:4/g" ---- g is for all occurrences on a line
sed "s/sam1\/0\/2/sam-1\/0\/2\/4\:4/"  ---- first occurrence on a line

示例,

[root@giam39 ~]# sed "s/sam1\/0\/2/sam-1\/0\/2\/4\:4/" file1.txt > file2.txt
[root@giam39 ~]# cat file1.txt
sam1/0/2
[root@giam39 ~]# cat file2.txt
sam-1/0/2/4:4
[root@giam39 ~]#

答案 1 :(得分:0)

string="sam1/0/2"
echo "$string" | sed -e 's/1\/0\/2/-1\/0\/2\/4:4/g'

sed - 用于过滤和转换文本的流编辑器

使用竖线(|),您可以将$string的输出传递给sed。 通过使用sed,您可以在具有特定模式的字符串中找到子字符串。

结构:sed -e 's/ugly/beautiful/g'