Abh*_*and 6 command-line bash text-processing
我有一个 HTML 文件momcpy.html
,我想从中提取给定字符串后的特定字符串。文件内容如下:
<tr><br>
<th height="12" bgcolor="#808080"><label for="<br>
LSCRM:Abhijeet<br>
<br>
MCRM:Bhargav<br>
<br>
TLGAPI:GAURAVAURAV<br>
<br>
MOM:MANIKA"></td><br>
Run Code Online (Sandbox Code Playgroud)
这存在于其中一行 HTML 中。
我想提取Manika
并存储在一个变量中。所以基本上我想提取MOM:之后出现的任何字符串,它可能是动态的。
我试过了:
file='/home/websphe/tomcat/webapps/MOM/web/momcpy.html'
y=$( awk '$1=="MOM:"{print $2}' $file)
echo "$y"
Run Code Online (Sandbox Code Playgroud)
但这没有用。
我不能理智地劝这样做,因为解析HTML与正则表达式是不可能有好下场的,但你也许能够得到字符串MANIKA
用
sed -nr '/MOM:/ s/.*MOM:([^"]+).*/\1/p' file
Run Code Online (Sandbox Code Playgroud)
无论如何,它可以在您的样本上正常工作...
-n
在我们要求之前不要打印任何东西-r
使用ERE/string/
找到行 string
s/old/new/
替换old
为new
.*
任意数量的任意字符([^"]+)
保存一些不是的字符 "
\1
对已保存字符的反向引用p
只打印我们改变的行小智 5
grep -Po 'MOM:\K[^"]+' file.html
Run Code Online (Sandbox Code Playgroud)
警告:这不是一个非常健壮的解决方案;并且您的 HTML 无效