[問題] sed 只使用到match的pattern部份

看板Linux作者時間15年前 (2011/02/22 11:54), 編輯推噓2(205)
留言7則, 4人參與, 最新討論串1/1
檔案內容是類似這樣 Seagate 500G容量 SATA3 ST3500413AS/16M/SATA3/三年保, $1260 Seagate 1TB容量 SATA3 ST31000524AS/32M/SATA3/三年保, $1850 透過 ([0-9])+(G|T) 可以選取到500G 以及1T 但是在sed中敝人只知道將整行保留。 想請問是否有方式可以將變數只保留500G 以及1T 而不是整段? 也有嘗試過用not的方式,如: [^([0-9])+(G|T)] 但是 regular expression似乎會誤判 麻煩版友解答一下 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.36.31.161

02/22 17:53, , 1F
sed -r 's/(.*) ([0-9]+(G|T))(.*)/\2/' 可用(可是有用到500
02/22 17:53, 1F

02/22 17:55, , 2F
前的那個空格,不太完美) 我有\2 去reference第二個()
02/22 17:55, 2F

02/22 17:55, , 3F
02/22 17:55, 3F

02/22 19:05, , 4F
如果把第一個(.*)改成(.+)可以嗎?
02/22 19:05, 4F

02/22 20:56, , 5F
沒差啊, terminal就在面前, 試試看嘛~
02/22 20:56, 5F

02/22 22:57, , 6F
可以了,感謝兩位的幫忙。
02/22 22:57, 6F

02/25 15:15, , 7F
grep -o 這招?
02/25 15:15, 7F
文章代碼(AID): #1DOpDWvC (Linux)