grep正则表达式在两个已知字符串之间拉出一个字符串 [英] grep regex to pull out a string between two known strings
本文介绍了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
$ bgrep -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屋!
查看全文