2015-11-24 64 views
3

我有一個txt文件是這樣的:如何使用grep從文件中檢索匹配的文本?

asdfasdf 
ffaCover 91adf 
ffffa 

我想用grep或一些Linux工具捕獲「蓋」後面的空格後的1個或2位數字。在一些編程語言中,我會使用正則表達式庫來匹配/^Cover(\ d \ d?)$ /。然後有一些方法可以得到括號內的1或2位數字。有沒有辦法使用grep來做到這一點?

+0

'grep -o'或'cut -f'。 – bishop

回答

2

我一直做這樣的事情:

grep -Po '(?<=Cover\s)(\d\d?)' 

-o選項grep使它只打印模式,不包括零寬度向後斷言相匹配的部分。

但是,我不知道anubhava之前答案中的\K選項,這看起來更清晰。

+0

我結束了這個,因爲我所在的Windows系統似乎不支持\ K選項。 –

2

只是管grep -oP

在PCRE正則表達式
grep -Po 'Cover \K[0-9]{1,2}' 
91 

\K重置所有先前匹配的信息。

相關問題