• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學(xué)習(xí)啦>學(xué)習(xí)電腦>操作系統(tǒng)>Linux教程>

    linux中sed命令字符串替換的用法詳解

    時(shí)間: 佳洲1085 分享

      Linux系統(tǒng)中sed命令可以將字符串批量替換,省去了很多麻煩,下面由學(xué)習(xí)啦小編為大家整理了linux系統(tǒng)中sed命令字符串替換的用法詳解,希望對(duì)大家有幫助!

      linux中sed命令字符串替換的用法詳解

      sed替換的基本語(yǔ)法為:

      sed 's/原字符串/替換字符串/'

      單引號(hào)里面,s表示替換,三根斜線中間是替換的樣式,特殊字符需要使用反斜線”\”進(jìn)行轉(zhuǎn)義,但是單引號(hào)”‘”是沒(méi)有辦法用反斜線”\”轉(zhuǎn)義的,這時(shí)候只要把命令中的單引號(hào)改為雙引號(hào)就行了,例如:

      sed "s/原字符串包含'/替換字符串包含'/" //要處理的字符包含單引號(hào)

      命令中的三根斜線分隔符可以換成別的符號(hào),這在要替換的內(nèi)容有較多斜線是較為方便,只需要緊跟s定義即可,例如換成問(wèn)號(hào)”?”:

      sed 's?原字符串?替換字符串?' //自定義分隔符為問(wèn)號(hào)

      可以在末尾加g替換每一個(gè)匹配的關(guān)鍵字,否則只替換每行的第一個(gè),例如:

      sed 's/原字符串/替換字符串/' //替換所有匹配關(guān)鍵字

      上箭頭”^”表示行首,美元”$”符號(hào)如果在引號(hào)中表示行尾,但是在引號(hào)外卻表示末行(最后一行),這里犯二了,搜了半天哪個(gè)符號(hào)表示首行,半天才想起來(lái),首行就是數(shù)字”1″啊.那么在行首和行尾添加字符串就是把行尾和行首替換,例如:

      sed 's/^/添加的頭部&/g' //在所有行首添加

      sed 's/$/&添加的尾部/g' //在所有行末添加

      sed '2s/原字符串/替換字符串/g' //替換第2行

      sed '$s/原字符串/替換字符串/g' //替換最后一行

      sed '2,5s/原字符串/替換字符串/g' //替換2到5行

      sed '2,$s/原字符串/替換字符串/g' //替換2到最后一行

      替換樣式可以多個(gè)在同一條命令中執(zhí)行,用分號(hào)”;”分隔,例如:

      sed 's/^/添加的頭部&/g;s/$/&添加的尾部/g' //同時(shí)執(zhí)行兩個(gè)替換規(guī)則

      sed處理過(guò)的輸出是直接輸出到屏幕上的,要保存可以將輸出重定向,或者使用參數(shù)”i”直接在文件中替換:

      sed -i 's/原字符串/替換字符串/g' filename //替換文件中的所有匹配項(xiàng)

      linux中sed命令批量替換字符串操作

      使用sed命令可以進(jìn)行字符串的批量替換操作,以節(jié)省大量的時(shí)間及人力;

      使用的格式如下:

      sed -i "s/oldstring/newstring/g" `grep oldstring -rl path

      其中,oldstring是待被替換的字符串,newstring是待替換oldstring的新字符串,grep操作主要是按照所給的路徑查找oldstring,path是所替換文件的路徑;

      -i選項(xiàng)是直接在文件中替換,不在終端輸出;

      -r選項(xiàng)是所給的path中的目錄遞歸查找;

      -l選項(xiàng)是輸出所有匹配到oldstring的文件;

      實(shí)例:

      1. 替換指定文件的字符串

      sed -i "s/oldstring/newstring/g" filename

      sed -i "s/6/sk/g" ./test01.txt

      2. 字符串替換批量文件操作

      sed -i "s/6/sk/g" ·grep 6 -rl /home/work/test`

      sed -i "s/6/sk/g" ·grep 6 -rl /home/work/test/*.sh`

      可將test目錄下的所有相關(guān)文件都進(jìn)行字符串替換

      補(bǔ)充:Linux中sed命令使用時(shí)的小技巧

      在sed的命令行中引用Shell變量時(shí)要使用雙引號(hào),而不是通常所用的單引號(hào)。下面是一個(gè)根據(jù)name變量的內(nèi)容來(lái)刪除named.conf文件中zone段的腳本:

      name='zone "localhost"'

      sed "/$name/,/};/d" named.conf

      sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`

      例如:替換/home下所有文件中的www.itbbs.cn為chinafar.com

      # sed -i “s/www.itbbs.cn/chinafar.com/g” `grep www.itbbs.cn -rl /home`

    3645328 主站蜘蛛池模板: 精品国产福利一区二区| 免费一看一级毛片全播放| 国产亚洲精久久久久久无码| 国产成人精选免费视频| 国产成年无码久久久久毛片| 国产毛多水多高潮高清| 国产成人综合精品一区| 国产无遮挡色视频免费视频| 国产精品俺来也在线观看 | 中文字幕中韩乱码亚洲大片| 久久96国产精品| 中文天堂在线观看| 一级特黄录像绵费播放| a级情欲片在线观看hd| 99久久精品午夜一区二区| 91精品欧美成人| 91成人午夜在线精品| 窝窝影院午夜看片| 992tv在线| 老师好大好爽办公室视频| 美国美女一级毛片免费全| 窝窝社区在线观看www| 波多野结无码高清中文| 欧美一级视频免费看| 日本久久久久亚洲中字幕| 性一交一乱一视频免费看| 在线看片你懂的| 国产熟女一区二区三区五月婷| 国产免费观看a大片的网站| 午夜高清视频在线观看| 欧美日韩成人午夜免费| 女子初尝黑人巨嗷嗷叫| 成年女人午夜毛片免费视频| 少妇被又大又粗又爽毛片久久黑人 | caoporn成人| 国产漂亮白嫩的美女| 西西午夜无码大胆啪啪国模| 精品一区二区三区视频在线观看| 正在播放julia女教师| 日韩视频在线一区| 成人午夜性a级毛片免费|