我知道,不要使用curl,grep和sed解析.但我正在寻找一种简单的方法,而不是一种非常安全的方法.
所以我得到一个带curl的HTML文件,我需要从标签中获取某个属性的值.我用grep来告诉我它说的那条线token.这只发生一次.这给了我一个完整的div:
<div class="userlinks">
<span class="arrow flleft profilesettings">settings</span>
<form class="logoutform" method="post" action="/logout">
<input class="logoutbtn arrow flright" type="submit" value="Log out">
<input type="hidden" name="ltoken" value="a5fc8828a42277538f1352cf9ea27a71">
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到value属性(例如"a5fc8828a42277538f1352cf9ea27a71")?
per*_*eal 11
没有必要grep:
sed -n '/token/s/.*name="ltoken"\s\+value="\([^"]\+\).*/\1/p' input_file
Run Code Online (Sandbox Code Playgroud)
一种方式,使用sed:
sed "s/.* value=\"\(.*\)\".*/\1/" file.txt
Run Code Online (Sandbox Code Playgroud)
结果:
a5fc8828a42277538f1352cf9ea27a71
Run Code Online (Sandbox Code Playgroud)
HTH
另一种方式使用awk
grep "ltoken" file.txt | awk -F"\"" '{print $6}'
Run Code Online (Sandbox Code Playgroud)
对于不同的属性值只需增加或减少$6