請問sed多個條件的問題? - Linux

Madame avatar
By Madame
at 2009-08-24T17:27

Table of Contents

※ 引述《roylee17 (把我id還我阿......)》之銘言:
: 可以'巢狀'地使用大括號'{}'來附加更多的條件
: $ cat input.txt
: aa
: bb
: cc
: dd
: cc
: $ sed -e '/aa/{ n; /bb/{ n; s/cc/zz/ } }' input.txt
: aa
: bb
: zz
: dd
: cc

謝謝這位前輩,原來可以巢狀,又學到一招了
但是我又發現了一個問題
那就是如果文件是這樣的
1. aa 123
2. bb,cc
3. aa 123
4. aa 123

而我的條件檔這樣寫
/aa/{
s/123/456/
n; /bb/{
s/cc/zz/
}
}

那麼在cc的地方確實會替換成zz
但是在第4行的aa 123,此處的123就不會被替換掉了

結果:
1. aa 456
2. bb,zz
3. aa 456
4. aa 123

我猜測是在第三行修改123完的時候
指針因為n參數的關係已經跳到下一行了
然後做完判斷bb又繼續往下一行去
所以跳過了第4行?

如果是這樣的話,請問有沒有方法可以讓指針往上跳?
謝謝執教 <( _ _ )>

--
Tags: Linux

All Comments

請問sed多個條件的問題?

Yedda avatar
By Yedda
at 2009-08-24T11:39
※ 引述《wansincere (無印良品)》之銘言: : 各位前輩安安 : 我想請問一個sed判斷多個條件的問題 : 我知道當我想判斷一個條件的時候是這樣的 : /條件/{s/aa/bb/g} : 如果我找到一個條件,然後替換下一行是這樣 : /條件/{n;s/aa/bb/;} : 那如果我要找到第一個條件 ...

在Nautilus底下用wine使用winrar

Ina avatar
By Ina
at 2009-08-23T16:38
之前忘記怎麼設定了,本來有設定好結果不小心刪除設定檔 之前設定是只要在Nautilus底下右鍵就有個winrar可以啟動 現在重新設定卻無法開啟指定的檔案 只會呼叫出winrar的視窗 以下是設定檔 [Desktop Entry] Encoding=UTF-8 Version=1.0 Type=Appli ...

Quake Live: 運行在瀏覽器內的 3D FPS遊戲

Tracy avatar
By Tracy
at 2009-08-23T16:04
※ [本文轉錄自 Browsers 看板] 作者: karst10607 (秋蟬) 看板: Browsers 標題: Quake Live: 運行在瀏覽器內的 3D FPS 時間: Sun Aug 23 15:12:12 2009 來源:LinuxTOY http://linuxtoy.org/archi ...

急問!!想設一個很大的swap,可以嗎?

Lily avatar
By Lily
at 2009-08-23T08:30
急急急。 我跑模擬的工作站因為記憶體被吃光導致工作中斷。 其訊息如下: 1. centos 5G swap 3.8G ram http://tinyurl.com/ko9mrd 2. suse 10 2G swap 3.8G ram http://tinyurl.com/nhmj7r 3. rhel ...

有支援DRBL的無限開機網卡嗎?

Genevieve avatar
By Genevieve
at 2009-08-23T03:16
最近專題的DRBL~ 要從有線進階到無限了(教授要求...囧rz) 所以想要用2張無線網卡來達成目的 但是目前手上有的網卡並沒有支援PXE開機 市面上有支援PXE的網卡嗎?? 還是有大大有替代的方案?? 希望越簡單越好...畢竟我們只是大學部專題生...懂得並不是很多andgt;and#34;an ...