我想從位於兩行之間的大型文件行中提取,每行由特定模式標記,讓我們說pattern1和pattern2。 我的代碼:通過僅執行第一個模式的精確匹配來提取兩個模式之間的線
awk "/pattern1/{flag=1;next}/pattern2/{flag=0}flag" filename
驗證是否爲「樣式」的行存在,並開始從該行打印,直到它找到其中字符串「模式2」的存在後續的線。
我想要做的是將字符串「pattern1」與awk將開始打印的行完全匹配,並通過驗證行中是否存在「pattern2」來檢測awk將停止打印的行精確匹配)。所以基本上,我想對第一個模式進行精確匹配,並保持上面的命令對第二個模式的匹配行爲。
如果我們在數據文件的第一行和第二行之間添加「pattern1 234」,那麼'awk'/ pattern1 /,/ pattern2 /'data'將會打印出「pattern1 234」,「pattern1」,「xyz 「和」模式2「。正如我在文章中所說的,我想爲第一種模式做EXACT匹配,併爲第二種模式做默認/經典匹配。我放在我的文章中的命令與您的命令大致相同,只是它不打印包含模式(您的代碼)的行。 – dada
@dada很好,你將不得不向我們展示你的輸入數據和正則表達式模式,以便我們可以完成那些精確匹配。如果你想要全字匹配,你可以使用'gawk',字邊界爲'\ y'或者像這樣放置錨點:'awk'/^pattern1 $ /,/ pattern2/data'這將打印你想要的信息 – ritesht93