,如果我有:grep的全非字母數字字符串和非數字
abc a1b2c3 123
我如何可以grep整個字符串,使我得到
abc
不在一個字母數字字符或數字我以爲我可以結合[^0-9]
使用-F
標誌即
grep -F '[^0-9]' filename
並返回不包含數字的整個字符串 - 但這不會返回任何內容。
有什麼建議嗎?
,如果我有:grep的全非字母數字字符串和非數字
abc a1b2c3 123
我如何可以grep整個字符串,使我得到
abc
不在一個字母數字字符或數字我以爲我可以結合[^0-9]
使用-F
標誌即
grep -F '[^0-9]' filename
並返回不包含數字的整個字符串 - 但這不會返回任何內容。
有什麼建議嗎?
如果你只是想匹配的字母詞,那些沒有任何數字部分,說:
grep -o "\b[[:alpha:]]*\b"
\b
空字符串在字[[:alpha:]]
字母字符相匹配的邊緣相匹配。也就是說,A-Za-z加上你的本地的。你的榜樣:
$ echo "abc a1b2c3 123" | grep -o "\b[[:alpha:]]*\b"
abc
像這樣:
grep -wo '[^0-9]*' file
-w
- 只打印匹配的模式-o
匹配您可以使用--word-regexp
(-w
)只匹配不包含任何數字的話:
$ grep -wo '[^[:digit:]]\+' <<<'abc a1b2c3 123'
abc
-o
只打印匹配部分。
非常感謝 - 通過'[0-9]'使用'[[:digit:]]'是否有優勢? – brucezepplin
@brucezepplin字符類'[:digit:]'將根據您的語言環境擴展爲值,但在這種情況下'[0-9]'可以正常工作。 – heemayl
我正在嘗試命令..但它沒有找到字符串中的所有組合.'echo「abc a1b2c3 123 xyz aqw2」| grep -o「\ b [[:alpha:]] * \ b」',輸出爲 'abc'。任何想法@fedorqui –
@MathewsJose它真的取決於你正在使用的'grep',因爲它可能不理解'[[:alpha:]]'。在我的cygwin中,它正確地返回'abc'和'xyz'。 – fedorqui