假設我有一個包含很多單字的文件,我只想找出模式為「xyz」的第一個單字。如果同一行有多個具有這種模式的單字怎麼辦?
-m
傳回第一行中與其匹配的所有單字。我只需要 grep 指令。
答案1
預設情況下grep
列印線匹配模式,因此如果該模式在一行中出現一次或多次,grep
將列印整行。
新增該標誌-m 7
將告訴grep
您僅列印模式出現的前 7 行。
所以這應該可以達到你想要的效果(我還沒測試過):
grep -o -m 1 xyz myfile | head -1
編輯:正如@Kusalananda 所指出的,您並不嚴格需要該-m
標誌,但使用它意味著grep
不需要解析整個文件,並且會更快地輸出結果,特別是如果myfile
是一個大文件。
答案2
您的問題的答案在 grep 手冊頁:
grep -m1 'searchstring' file_name
選項-m<number>
是關鍵。-m1
只會顯示第一個符合項、-m2
前 2 個符合項,依此類推。