Re: [問題] 請問sed多個條件的問題?

看板Linux作者 (無印良品)時間16年前 (2009/08/24 17:28), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/5 (看更多)
※ 引述《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行? 如果是這樣的話,請問有沒有方法可以讓指針往上跳? 謝謝執教 <( _ _ )> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.152.187 ※ 編輯: wansincere 來自: 60.251.152.187 (08/24 17:30)
文章代碼(AID): #1AabqWLG (Linux)
文章代碼(AID): #1AabqWLG (Linux)