2016-01-06 21 views
0

我必須在linux中創建一個只顯示.txt文件的一部分的命令(所以不需要腳本)。我已經搜索了grep和sed的手冊頁,但它們一次只分析一行(如果我沒有弄錯),所以這不是我想要的。分析linux上的多行

的啓動和文件的一部分,我必須表明被標記像這樣的結尾:

*** START OF... *** 
... 
*** END OF... *** 

我不能使用的頭部和尾部的命令,因爲我不是想知道確切位置這些行在文件中。

+0

你是什麼意思「make a command(so no script)」?爲什麼你不能使用腳本?這是一些家庭作業嗎?您可以使用'awk',它可以逐行進行,但是您可以跟蹤內容並且只有在觸發'*** START OF ... ***'行後纔開始使用輸入。 –

+0

這只是我正在做的練習,它說你應該使用命令(當我們做這個練習時,我們還沒有看過腳本)。我們從來沒有看到awk是如何工作的,所以它應該沒有awk,它可以是在考試本身,他們說你不能使用awk ... – micro

回答

1
$ sed -ne '/START OF/,/END OF/p' << EOF 
> 2 3 5 
> 3 4 7 
> *** START OF ... *** 
> 1 2 3 
> 2 3 5 
> 3 4 7 
> 4 5 9 
> *** END OF ... *** 
> 2 3 5 
> 3 4 7 
> EOF 
*** START OF ... *** 
1 2 3 
2 3 5 
3 4 7 
4 5 9 
*** END OF ... *** 

EOF在這裏doc,請參閱wikipedia瞭解更多信息。 -e表示下一個參數將被視爲文件名以外的命令。

+0

謝謝,這工作。但你能解釋一下嗎?我瞭解除EOF部分以外的所有內容(或者這只是文件名)以及爲什麼需要-e標誌。我現在跟劇本有點關係,但我真的不明白。 – micro

+0

@micro選中此項:http://www.tldp.org/LDP/abs/html/here-docs.html – hek2mgl