2015-12-14 71 views
0

開始和結束定界符我有一個​​大的字符串中的字符的文本文件,像這樣:解析字符串在Bash中

starthere 
inserttexthere 
inserttexthere 
inserttexthere 
inserttexthere 
inserttexthere 
inserttexthere 
endhere 

是否有這可能從「starthere」被解析到一個有效的方法'endhere',返回中間的所有文字?例如。使用開始和結束分隔符解析數據?

我目前的想法是用'starthere'分隔整個文本,然後用'endhere'分隔剩下的文本來返回中間文本。有沒有更有效的方法來做到這一點?

我一直在研究字符串解析在批處理,但它似乎最內置的工具是單字符定界。

+0

http://www.grymoire.com/Unix/Sed.html#uh-35a – 4ae1e1

+0

當然你也可以使用一個循環純粹的bash,但這不是一個有效的方式。 – 4ae1e1

+1

如果'sed'/ starthere /,/ endhere/{processing ...}'file'不適合你,那麼你需要提供更多的示例數據。 – Kent

回答

1

awk來救援!

$ awk '/endhere/{f=0} f; /starthere/{f=1}' text 

inserttexthere 
inserttexthere 
inserttexthere 
inserttexthere 
inserttexthere 
inserttexthere 

,或者,如果你想分隔符以及

$ awk '/starthere/,/endhere/' text 

starthere 
inserttexthere 
inserttexthere 
inserttexthere 
inserttexthere 
inserttexthere 
inserttexthere 
endhere