在字符替換中,可能會遇見引號,“/”等的替換,這時應(yīng)該注意,sed的命令原型是:
成都創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今,先為汨羅等服務(wù)建站,汨羅等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為汨羅企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
sed -i "s/oldstring/goalstring/g" file
如果一個路徑是data/path/abc,現(xiàn)在要將此路徑換成一個字符串cde
但是這時跟在s后邊的其實是分隔符,用以將oldstring替換成cde;他可以使用任意字符,這時如果字符串中有“/”,就會發(fā)生混亂,在這個時候可以用#當做分隔符,就變成
sed -i "s#abc#cde#g" file
這時如果abc中包含“/”就可以隨便替換了;
引號的替換:
需要將引號轉(zhuǎn)義,使用反斜杠“\”,比如替換" ' 'div' ' ",如果需要將它替換成‘div' ;可以使用sed -i s#\"\'\'#\'#g就能替換了。
路徑"../syslog/tmp/"替換為"/data/syslog/tmp”
首先要搞清楚,轉(zhuǎn)義符\的作用是消除有特殊含義字符的特殊意義,使其還原為普通字符。
sed
-i
's/\.\.\/syslog\/tmp\//\/data\/syslog\/tmp/'
file.ini
點號.在正則表達式中有其特殊含義(表示任意一個字符),所以要表示點號本身,需要使用轉(zhuǎn)義符。
sed替換命令的格式一般為
s/.../.../
,所以如果里面的內(nèi)容也包含
/
,比如你這里的路徑,為了區(qū)分,也需要轉(zhuǎn)義。
最后說明一下,這樣看起來很混亂,比較容易搞錯。
其實sed的替換命令格式不一定要是
s/.../.../,下面這樣也都可以:
s#...#...#
s_..._..._
即命令s后可以跟任意字符,只要跟替換內(nèi)容不重復(fù)即可。這樣,路徑里的/就不再需要轉(zhuǎn)義了。
正斜杠,又稱左斜杠,符號是(/);反斜杠,也稱右斜杠,符號是(\)。
==============正斜杠(/)的作用:
1、作為路徑的分隔符,采用正斜杠(/),比如"/home/hutaow"
================反斜杠(\)的作用:
1、在正則表達式中,采用表達? \(\);\{m,n\};\?;\+
2、一個命令可以用(\)分成多行
3、作為轉(zhuǎn)義(\)使用
后續(xù)補充。。。。。
在linux命令前加上反斜杠,可以臨時取消使用別名。比如 \rm -rf
反斜杠是直接調(diào)用rm的原命令,為了保證你使用的命令不是各種系統(tǒng)別名,經(jīng)常會在命令前面加一個反斜杠來去除別名。
不是所有l(wèi)inux版本都這樣。RHEL5,6沒這個問題。
你的意思是多了一個"\"嗎? 你是在輸完ls $HOME再按tab鍵?
新聞標題:linux命令行反斜杠,linux 反斜杠
當前網(wǎng)址:http://chinadenli.net/article12/hdoodc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、網(wǎng)站營銷、網(wǎng)頁設(shè)計公司、域名注冊、動態(tài)網(wǎng)站、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)