簡體   English   中英

Awk Sed Grep解析文本文件以匹配模式

[英]Awk Sed Grep parsing text file to match a pattern

我需要從命令提示符處運行此命令,以僅在符號#示例#IP旁邊的單詞之后顯示與模式匹配的那些行。
因此,如果要查找IP,我想在#IP部分下打印行。 在這種情況下,我將只打印3行。 這是一個大文件,並且有許多以#開頭的部分。

可以請您幫忙嗎?

#IP Source 
1  is for 1
2  is for 2
3  3 for 3
#BASE
4 is for 4
5 is for 5

嘗試使用GNU sed:

sed -n '/IP/,/#/{/#/d;p;}' file

輸出:

1  is for 1
2  is for 2
3  3 for 3

這是一個awk解決方案:

awk '/^#IP/{f=1;next} /^#/{f=0} f{print}' file

每個條件 { 動作 }對的一些解釋:

/^#IP/{f=1;next} -如果該行以#IP ,則將變量f設置為1(true),然后( next )跳過對該行的進一步處理。

/^#/{f=0} -如果該行以#開頭,請將變量f設置為0(假)

f{print} -如果變量f為true(非空且非0),則打印當前行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM