如何替换shell中的特殊字符?
How to replace special character in shell?
我有一个字符串:
sam1/0/2
我必须使用 shell 命令将其替换为:
sam-1/0/2/4:4
有什么帮助吗?谢谢
用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 ~]#
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'
我有一个字符串:
sam1/0/2
我必须使用 shell 命令将其替换为:
sam-1/0/2/4:4
有什么帮助吗?谢谢
用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 ~]#
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'