簡體   English   中英

我如何grep並從文件中輸出某些單詞,直到它檢測到某種模式?

[英]How do I grep and output certain words from a file until it detects a certain pattern?

在此文件中:

ServerName sdadas.sdsd.sdsa     sdsd.dfdf

fdfd.f.fdfd.d      df.d-f



fgf.gf.fffff
fg.gk
Databases

我想grep“ ServerName”行和其他所有行(在“ ServerName”之后),包括“ Databases”(注意:將這個詞-數據庫-看作是一些隨機的詞,重要的是它不帶點。不想在此之后輸出線)

然后在該grep之后,我只想輸出在其中帶有“。”的單詞。

awk將使用來打印所有單詞. 在其中從ServerName並以第一個單詞不帶停止.

awk '/ServerName/ {f=1} f {for(i=1;i<=NF;i++) if ($i~/\./) print $i; else if($i!="ServerName") exit}' file
sdadas.sdsd.sdsa
sdsd.dfdf
fdfd.f.fdfd.d
df.d-f
fgf.gf.fffff
fg.gk

還有一個簡單的帶有sed襯墊。

sed -n '/ServerName/,/^[^.]\+$/ p' file

它使用兩個正則表達式ServerName^[^.]\\+$來描述應該打印的第一行和最后一行。

ServerName與包含此字符串的任何行匹配。 您也可以使用^ServerName僅匹配以它開頭的行。

^[^.]\\+$匹配其中沒有點的任何非空行。

暫無
暫無

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

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