亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 請(qǐng)教sed多行間隔替換問(wèn)題 [打印本頁(yè)]

作者: solohac    時(shí)間: 2012-09-03 17:22
標(biāo)題: 請(qǐng)教sed多行間隔替換問(wèn)題
例子:

http
{
   port xx=11
   okxxxx=22
   server 10.10.10.10
  {
     weight 1
     xxxx
     xxxx
  }
  server 12.10.10.12
  {
     weight 1
     xxxx
     xxxx
  }
}

現(xiàn)在想替換
server 10.10.10.10
server 12.10.10.12
這兩行中的數(shù)值為
server 13.13.13.13
server 14.14.14.14

請(qǐng)問(wèn)如何進(jìn)行多行替換呢?
嘗試了幾種思路都無(wú)法成功
$ip1=13.13.13.13
$ip2=14.14.14.14
本來(lái)是想用 sed "/server/{我的替換命令}" 來(lái)處理,但是無(wú)法對(duì)應(yīng)2個(gè)變量
第二種想法是把帶有server的行取出,然后替換:
sed "/server/;s/.*/server $1 \nserver $2\n/" filename   ,但是這種視乎不符合語(yǔ)法



作者: kk5234    時(shí)間: 2012-09-03 17:56
  1. sed '/http/{:1 N;$!b1;s/\(server \)[0-9.]*/\113.13.13.13/;s//\114.14.14.14/2}' infile
復(fù)制代碼

作者: solohac    時(shí)間: 2012-09-03 18:13
kk5234 發(fā)表于 2012-09-03 17:56

首先感謝!
代碼運(yùn)行了沒(méi)有改變,是不是其中有打錯(cuò)了?然后我改成了(去掉了!)
sed  "/http/{:1 N;$b1;s/\(server \).*/\12.2.2.2/;s//\13.3.3.3/2}" $path
會(huì)2個(gè)都修改

沒(méi)怎么看懂,剛才在嘗試另外一種方法:
sed -r  "0,/server.*/s/(server ).*/\1asd/" $path
這樣只修改第一個(gè)server。但是不知道第一個(gè)“0,”是什么意思
另外,能否解讀下  ":1" "$!b1" 是什么意思?
謝謝
作者: cjaizss    時(shí)間: 2012-09-03 20:02
solohac 發(fā)表于 2012-09-03 18:13
首先感謝!
代碼運(yùn)行了沒(méi)有改變,是不是其中有打錯(cuò)了?然后我改成了(去掉了!)
sed  "/http/{:1 N;$b1 ...

加-i參數(shù)就可修改原文件,但和-r連用其規(guī)則我就不明白了,一般我不用-i參數(shù)
你可以重定向再mv
作者: solohac    時(shí)間: 2012-09-03 20:23
cjaizss 發(fā)表于 2012-09-03 20:02
加-i參數(shù)就可修改原文件,但和-r連用其規(guī)則我就不明白了,一般我不用-i參數(shù)
你可以重定向再mv


謝謝斑竹
-r似乎是用于省略 分組 \(xxx\)的轉(zhuǎn)義符。
苦思冥想仍然想不到如何解決這個(gè)問(wèn)題
有什么思路嗎?
作者: cjaizss    時(shí)間: 2012-09-03 21:39
solohac 發(fā)表于 2012-09-03 20:23
謝謝斑竹
-r似乎是用于省略 分組 \(xxx\)的轉(zhuǎn)義符。
苦思冥想仍然想不到如何解決這個(gè)問(wèn)題

人家不是已經(jīng)幫你解決了嗎?
不符合你的需求嗎?
作者: solohac    時(shí)間: 2012-09-03 21:56
cjaizss 發(fā)表于 2012-09-03 21:39
人家不是已經(jīng)幫你解決了嗎?
不符合你的需求嗎?

kk5234 的回答是正確的,只是我還沒(méi)有完全搞清楚所有的含義,正在研究中。。
謝謝你們!
作者: kk5234    時(shí)間: 2012-09-03 22:18
回復(fù) 3# solohac


    :1是標(biāo)簽
    $!b表示最后一行不執(zhí)行跳轉(zhuǎn)





歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2