回文章列表
作者adolf.bbs@cd.twbbs.org (Walk On Water) 看板: linux
標題Re: [問題] 如何讓Sed找到符合條件的最短字串
時間中正築夢園 (2008/04/28 Mon 17:56:17)
※ 引述《GiHong.bbs@binary.csie.ncu.edu.tw (fatherfucker)》之銘言:
> Ex1:aaa-bb-xx
> sed 's/\(^.*-.*\)-.*/\1/g
> 結果就會是aaa-bb
> Ex2:aa-bbb-xx-xx
> 用同樣的指令結果就會是
> aa-bbb-xx
> 請問如果只想要前面的aaa-bb或aa-bbb
> 該怎麼做呢?或是有別的方法可以做到??
> 我試過把Ex2的結果再pipe到同樣的命令雖然有用
> 但總覺得很笨…因為每多一個'-'就要多一次pipe…

sed 's/\(^[^-]*-[^-]*\)-.*/\1/g'

這樣可以達到你要的要求
就是把本來的 . 換成 除了-以外的東西 [^-]
這樣他就不會很貪心的去吃到多餘的 - 了
--
* Origin: 中正築夢園 (CcuDream.twbbs.org) ★ From: 140.123.102.254
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻