2016-11-13 61 views
0

輸入文件是這樣的:AWK分隔符的整個文件

Scene 
some 
text 
... 
Scene 
some 
more 
text 

,我希望能夠打印每一個「場景」之間的文本(通過打印$ 0 $ 1,等等。像切 - d -f會這樣做)。
我嘗試了很多使用awk的東西,但我不明白如何使它工作。
awk -F '^Scene' '{print $1}' file打印整個文件,
awk '/^Scène/{ print $1 } file'打印所有在文件中找到的Scene
我想我不明白awk的邏輯。

回答

1

使用了GNU AWK您可以設置自定義記錄分隔符:

awk -v RS='Scene[[:space:]]*' 'NF' file 

some 
text 
... 


some 
more 
text 
  • -v RS='Scene[[:space:]]*'將設置輸入記錄分隔符爲Scene其次是可選的空格。
+0

我想「更多的文字」是一個字段,而不是3個不同的字段 –

+0

好的檢查我的更新答案。 – anubhava

+1

是的,這是一個公平的觀點。 – anubhava