我試圖搜索跨所有行的模式的所有文件,然後返回匹配模式的文件名列表。如何在UNIX中查找具有多行模式的文件?
我使用這行:
find . -name "$file_to_check" 2>/dir1/null | xargs grep "$2" >> $grep_out
這將創建一個文件列表,並匹配模式$ grep_out內上找到的線。這個問題是,搜索不能跨越多行。我讀過grep不能跨越多行,所以我打算用sed或awk替換grep。
我認爲需要改變的唯一事情就是grep。我發現grep無法跨多行搜索模式,所以我正在尋找使用sed或awk。當我從終端使用這些命令時,我得到了一個與我給sed的模式匹配的大文件。我想要的只是文件名,而不是模式的上下文。有沒有辦法檢索這個 - 也許有sed打印出文件名而不是上下文?或者,sed在找到匹配項時返回true/false,然後我可以保存用於執行搜索的當前文件名。
是什麼搜索模式的一些例子嗎?這些模式中是否有新行? – anubhava