grep正则表达式在两个已知字符串之间拉出一个字符串 [英] grep regex to pull out a string between two known strings

查看:239
本文介绍了grep正则表达式在两个已知字符串之间拉出一个字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我在解析出的一个文件中有一串文本,我几乎搞清楚了,但不知道我在想什么



<我使用的基本表达式是

cat cred.txt | grep -m 1 -o'& CD = [^&] *'

$ b

 & CD = u8AA-RaF-97gc_SdZ0J74gc_SdZ0J196gc_SdZ0J211 

我不希望& CD = 部分 strong>在结果字符串中,我该怎么做。



我解析的字符串是:

  webpage.asp?UserName = username& CD = u8AA-RaF-97gc_SdZ0J74gc_SdZ0J196gc_SdZ0J211& Country = USA 
grep 知道Perl正则表达式:

$ p>

解决方案

b
$ b

  grep -m 1 -oP'(?< =& CD =)[^&] *'cred.txt 

如果不是:

  sed'1s /.*& amp; CD = \([^&] * \)。* / \ 1 /'cred.txt 


I have a string of text in a file that I am parsing out, I almost got it but not sure what I am missing

basic expression I am using is

cat cred.txt | grep -m 1 -o '&CD=[^&]*'

I am getting a results of

&CD=u8AA-RaF-97gc_SdZ0J74gc_SdZ0J196gc_SdZ0J211

I do not want the &CD= part in the resulting string, how would I do that.

The string I am parsing from is:

webpage.asp?UserName=username&CD=u8AA-RaF-97gc_SdZ0J74gc_SdZ0J196gc_SdZ0J211&Country=USA

解决方案

If your grep knows Perl regex:

grep -m 1 -oP '(?<=&CD=)[^&]*' cred.txt

If not:

sed '1s/.*&CD=\([^&]*\).*/\1/' cred.txt

这篇关于grep正则表达式在两个已知字符串之间拉出一个字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆