我想在bash上對搜索foobar
這個詞的文件夾執行grep
。然後我想要輸出所有匹配,其中文件名稱和行號其中發現了事件。這可能嗎?grep在bash中獲取匹配文本的文件名和行號
我需要的輸出看起來像:
{{filename}}:{{line_number}} - {{matched_text}}
我想在bash上對搜索foobar
這個詞的文件夾執行grep
。然後我想要輸出所有匹配,其中文件名稱和行號其中發現了事件。這可能嗎?grep在bash中獲取匹配文本的文件名和行號
我需要的輸出看起來像:
{{filename}}:{{line_number}} - {{matched_text}}
grep -nrH 'regex' /dir/
-H
是添加文件名的選項,-n
添加行號,-r
是遞歸
我除非只有一個文件,否則即使沒有-H
也可以獲得文件名。
添加-i
不區分大小寫
添加-E
的擴展正則表達式
是;嘗試: grep -nr "expression" /path/to/files/
使用-n或--line數選項
grep -n foobar
這隻返回行號,而不是它包含在 –
中的文件的名稱我正在使用grep(GNU grep)2.5.1,它顯示了文件和行號。 – mamills
awk
基礎的解決方案:
awk '/REGEX/{print FILENAME":"FNR" - "$0}' PATH
對於遞歸路徑搜索,
find PATH-TO-START -type f -exec awk '/REGEX/{print FILENAME":"FNR" - "$0}' {} \;
你讀過手冊頁'grep'? – chepner
我有,但顯然我一定錯過了什麼...照顧開導我? –
您需要-n和-r選項。 – chepner