2013-11-21 64 views
0

我有一個問題,我在標題中提到過。SunOS - (Bash)Grep命令獲取不包含模式的匹配行後

有在我的文件中的行狀:

<Hi> 
<Test> 
<Test2> 
</Test2> 
</Test> 
</Hi> 

,所以我需要得到「嗨」標籤的全部內容。但我沒有gnu grep,無法安裝它,我不是機器的根。提前

Usage: grep -hblcnsviw pattern file . . . 

所以不能用-A和-B命令或其他GNU的grep命令,可以請你告訴我一條生路..

謝謝..:我只能用

+0

這已被討論過了。請參閱此:http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – tvm

+0

其實這不一樣..此外,您發送的這篇文章是非常老4年的變化一切... –

回答

1

那麼古老的sed呢?

sed -n '/<Hi>/,/<\/Hi>/p' file 
+0

謝謝你的工作完美... –

1

請問您的系統有awk,如果是的話,試試:

awk '/<Hi>/,/<\/Hi>/' file 
<Hi> 
<Test> 
<Test2> 
</Test2> 
</Test> 
</Hi> 

或者你可以使用:

awk '/<Hi>/{f=1} /<\/Hi>/ {f=0;print} f' file 
+0

它給了我: AWK:記錄'00:00:00022調試C ...」過長 備案號9 –

+0

測試我添加了第二個選項。既然你有'ubuntu'標籤,兩者都應該可以工作。你在什麼版本的'ubuntu'上。 – Jotne

+0

遺憾的是給我的錯誤: AWK:近語法錯誤行1 AWK:救助近線1 –

1

使用的sed:

sed -n '/<Hi>/,/<\/Hi>/p' file 

Perl的一個班輪..

perl -ne 'print if /<Hi>/ .. /<\/Hi>/' file 
+0

其實我試過這個正則表達式但沒有返回..:/ –

+0

它適用於我。 – hwnd