简体   繁体   English

使用grep的Perl regex获取子字符串

[英]Perl regex with grep to get the substring

4:46:31.232 AM  INFO    2012-08-13 04:46:31,232 [81-Spl/[1406]/[]]  - Adj Quantity Exceeds Paramaters. CFE 370 880N EMP NF 201209 -100 ADJOI

I need to get anything from Adj till ADJOI. 我需要得到从Adj到ADJOI的任何东西。 "Adj Quantity Exceeds Parameters." “调整数量超出参数。” is constant. 是恒定的。 The subsequent things always change. 随后的事情总是会改变。

I know how to do this using awk awk '{ idx=index($0,"Adj"); print substr($0,idx); }' 我知道如何使用awk awk '{ idx=index($0,"Adj"); print substr($0,idx); }' awk '{ idx=index($0,"Adj"); print substr($0,idx); }'

Perl regex would be good. Perl正则表达式会很好。 But not sure how to do this using grep with -P option 但不确定如何使用带有-P选项的grep来执行此操作

I tried the following, but it is not working grep -Po "'\\KAdj.*?(?=')" 我尝试了以下操作,但无法正常运行grep -Po "'\\KAdj.*?(?=')"

May be I don't understand question, but grep -oP 'Adj.*' gives me exactly the same result as awk '{ idx=index($0,"Adj"); print substr($0,idx); }' 可能是我听不懂问题,但是grep -oP 'Adj.*'给我的结果与awk '{ idx=index($0,"Adj"); print substr($0,idx); }'完全相同awk '{ idx=index($0,"Adj"); print substr($0,idx); }' awk '{ idx=index($0,"Adj"); print substr($0,idx); }'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM