[英]How to remove lines from text file not starting with certain characters (sed or 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.