看板 RegExp 關於我們 聯絡資訊
請教,我不理解為什麼^..*,[1-9]*,\+在如下grep , sed的結果是match的? $ echo '11162,1,2020-02-17 19:59:31:696,+000000000 00:01:39.097' | grep '^..*,[1-9]*,\+' 11162,1,2020-02-17 19:59:31:696,+000000000 00:01:39.097 $ echo '11162,1,2020-02-17 19:59:31:696,+000000000 00:01:39.097' | sed 's/^..*,[1-9]*,\+/REPLACED/g' REPLACED2020-02-17 19:59:31:696,+000000000 00:01:39.097 因為有後面的\+我覺得結果應該是不match的才是,感覺grep及sed像是忽略了\+的部份... 就像縮圖如下,在https://regex101.com/的測試結果是不match的. https: //ppt.cc/ft48Jx PS:不知為什麼一直被判定內容有廣告,所以我將縮圖的:後面加了空白,有勞將空白拿掉就可顯示縮圖. 環境: Linux 2.6.32-642.el6.x86_64 #1 SMP Wed Apr 13 00:51:26 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux grep (GNU grep) 2.20 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.90.60.74 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/RegExp/M.1582264062.A.336.html ※ 編輯: ericshei (219.90.60.74 臺灣), 02/21/2020 13:49:07
art1: 換個貼圖網址比較實際 02/21 19:05
jfcherng: grep 的某些語法可能跟你想的不太一樣唷 02/22 05:15
jfcherng: https://tinyurl.com/mfrywqj 02/22 05:16
jfcherng: sed 我想大概也是吧, 反正我都是加 -E 保平安 02/22 05:16
ericshei: 了解,謝謝J大 02/26 09:57