linux中sed命令如何运用‘\ ’ 反斜杠
展开全部
路径"../syslog/tmp/"替换为"/data/syslog/tmp”
首先要搞清楚,转义符\的作用是消除有特殊含义字符的特殊意义,使其还原为普通字符。
sed -i 's/\.\.\/syslog\/tmp\//\/data\/syslog\/tmp/' file.ini
点号.在正则表达式中有其特殊含义(表示任意一个字符),所以要表示点号本身,需要使用转义符。
sed替换命令的格式一般为 s/.../.../ ,所以如果里面的内容也包含 / ,比如你这里的路径,为了区分,也需要转义。
最后说明一下,这样看起来很混乱,比较容易搞错。
其实sed的替换命令格式不一定要是 s/.../.../,下面这样也都可以:
s#...#...#
s_..._..._
即命令s后可以跟任意字符,只要跟替换内容不重复即可。这样,路径里的/就不再需要转义了。
首先要搞清楚,转义符\的作用是消除有特殊含义字符的特殊意义,使其还原为普通字符。
sed -i 's/\.\.\/syslog\/tmp\//\/data\/syslog\/tmp/' file.ini
点号.在正则表达式中有其特殊含义(表示任意一个字符),所以要表示点号本身,需要使用转义符。
sed替换命令的格式一般为 s/.../.../ ,所以如果里面的内容也包含 / ,比如你这里的路径,为了区分,也需要转义。
最后说明一下,这样看起来很混乱,比较容易搞错。
其实sed的替换命令格式不一定要是 s/.../.../,下面这样也都可以:
s#...#...#
s_..._..._
即命令s后可以跟任意字符,只要跟替换内容不重复即可。这样,路径里的/就不再需要转义了。
展开全部
在Linux中sed命令可以用于替换但是替换的内容有时会包括元字符
这时需要使用'\'反斜杠将元字符转换成普通字符
例如:
ifconfig eth0|sed -n '2p'|cut -d: -f2|grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"`
这时需要使用'\'反斜杠将元字符转换成普通字符
例如:
ifconfig eth0|sed -n '2p'|cut -d: -f2|grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"`
追问
多谢,学习了,但是我在替换配置文件的路径时候遇到的
如路径为"../syslog/tmp/ 替换为“/data/syslog/tmp”
该如何运用反斜杠\执行替换?
追答
sed 's/\/syslog\/tmp/\/data\/syslog\/tmp/g' 后面跟配置文件的绝对路径
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一些转义字符的表示的特殊意思,例如和echo,sed连用时:
\n
表示新行
\r
表示回车
\t
表示水平的制表符
\v
表示垂直的制表符
\b
表示后退符
\a
表示“警告”(蜂鸣或是闪动)
\0xx
翻译成ASCII码为八进制0xx所表示的字符
\n
表示新行
\r
表示回车
\t
表示水平的制表符
\v
表示垂直的制表符
\b
表示后退符
\a
表示“警告”(蜂鸣或是闪动)
\0xx
翻译成ASCII码为八进制0xx所表示的字符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询