如何使用分隔符从 1 行文本文件中提取文本片段

val*_*era 6 command-line grep text-processing

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

喜欢:

:STX=ANAA:1+asdf+5060128703127:P'
IRF=16165193117+160624+160624 '
Run Code Online (Sandbox Code Playgroud)

Zan*_*nna 10

感谢 @terdon 和 @jhilmer 使引用明显不那么棘手

如果你想要 '

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

如果你不想要 '

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

解释

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