如何从带有分隔符的单行文本文件中 grep 一段文本

如何从带有分隔符的单行文本文件中 grep 一段文本

我想grep STX= .......直到它的第一个分隔符' 并且 IRF= .....直到它的第一个分隔符'

喜欢:

:STX=ANAA:1+asdf+5060128703127:P'
IRF=16165193117+160624+160624 '

答案1

感谢 @terdon 和 @jhilmer 让引用变得不那么棘手

如果你想要'

$ grep -oE "(STX|IRF).*'" file 
STX=ANAA:1+asdf+5060128703127:P'
IRF=16165193117+160624+160624 '

如果你不想'

$ grep -oE "(STX|IRF)[^']*"
STX=ANAA:1+asdf+5060128703127:P
IRF=16165193117+160624+160624

解释

  • -o只显示匹配的部分
  • -E使用 ERE,以便我们可以用来|搜索多个模式
  • "开始引用/停止引用
  • (THIS|THAT)匹配THISTHAT
  • .*匹配任意数量的任意字符
  • \'文字'
  • [^']*任意数量的任意字符,除了'

相关内容