我有一個文本文件的Unix grep的正則表達式如何用grep的
$ cat test.log
SYB-01001
SYB-18913
SYB-02445
SYB-21356
我想用grep爲01001和18913只什麼方式來做到這一點
我所要的輸出是
SYB-01001
SYB-18913
SYB-02445
我試過,但不知道什麼是錯用它
grep 'SYB-(18913)|0*)' test.log
我有一個文本文件的Unix grep的正則表達式如何用grep的
$ cat test.log
SYB-01001
SYB-18913
SYB-02445
SYB-21356
我想用grep爲01001和18913只什麼方式來做到這一點
我所要的輸出是
SYB-01001
SYB-18913
SYB-02445
我試過,但不知道什麼是錯用它
grep 'SYB-(18913)|0*)' test.log
對grep使用「擴展正則表達式」的-E
標誌。
例如
grep -E 'SYB-(0|18913)' test.log
其他的事情需要注意的:
0*
意味着零個或多個0
字符匹配 - 事實上這將匹配一切簡單明瞭的感謝--E技巧 – Lisa 2010-08-20 08:15:23
試一下:
grep 'SYB-\(18913\|0*\)' test.log
但是你也許不希望0*
部分像這樣行事。也許0+
更好。
您的括號已排除。嘗試
grep 'SYB-[18913|0*]' test.log
您確定這是正確的嗎? – ghostdog74 2010-08-20 08:21:17
在Linux Mint上檢查它,得到與問題相同的輸出結果。 – 2010-08-20 08:30:58
'echo「SYB-11111」| grep'SYB- [18913 | 0 *]'' – 2010-08-20 08:34:22
AWK
awk '/SYB-(0|18913)/' file
認爲你可能需要重新解釋 - 你所期望的輸出並沒有真正匹配了你說你想要的。 – cristobalito 2010-08-20 08:11:33