如何在文件中列出每個正則表達式的出現次數,其中一行可以多次包含正則表達式?在文件中查找每個出現的正則表達式
Example:
XXXXXXXXXX FOO3 XXXX FOO4 XXX
XXX FOO2 XXXX FOO9 XXXXXX FOO5
The result should be:
FOO3
FOO4
FOO2
FOO9
FOO5
在這種情況下,正則表達式將是/FOO./。
grep將返回至少匹配一次的每一行。但那正是我想要的。
如何在文件中列出每個正則表達式的出現次數,其中一行可以多次包含正則表達式?在文件中查找每個出現的正則表達式
Example:
XXXXXXXXXX FOO3 XXXX FOO4 XXX
XXX FOO2 XXXX FOO9 XXXXXX FOO5
The result should be:
FOO3
FOO4
FOO2
FOO9
FOO5
在這種情況下,正則表達式將是/FOO./。
grep將返回至少匹配一次的每一行。但那正是我想要的。
你試過-o選項:(grep man page)
-o,--only匹配顯示匹配 模式的匹配行的唯一部分。
使用grep -o FOO.
(-o
:只顯示匹配)
你的正則表達式甚至可以擴展到僅匹配FOO後面跟一個數字,而不是任何字符(.
將空白匹配呢!):
<yourfile grep -o 'FOO[0-9]'
你的問題並不完全清楚,特別是因爲示例數據是超級通用的。但是,下面是一些可能匹配的模式:
您的模式匹配FOO,後跟任何匹配所有行到末尾的字符。我不認爲你想這樣嘗試這樣的事情:
/FOO[0-9]+/
- 匹配FOO後跟一個或多個數字。
/FOO[^ ]+/
- 匹配FOO後跟任何不是空格的字符。根據您的示例模式,這可能是最佳解決方案。
/FOO[0-9a-zA-Z]+/
- 匹配foo後跟任何字母數字字符
請附上您試圖grep命令。 – Sam