我有一个curl请求,该请求返回以下输出:
<a href="spike10-st-d43d7eff66aa.ovpn">pike10-st-d43d7eff66aa.ovpn</a> 25-Sep-2018 13:49 4947
<a href="spike11-First-d43d7eff66aa.ovpn">spike11-First-d43d7eff66aa.ovpn</a> 25-Sep-2018 14:04 4951
<a href="spike12-rst-d43d7eff66aa.ovpn">spike12-rst-d43d7eff66aa.ovpn</a> 25-Sep-2018 14:27 4947
<a href="spike13-irst-d43d7eff66aa.ovpn">spike13-irst-d43d7eff66aa.ovpn</a> 25-Sep-2018 15:00 4947
任何人都可以给我一个提示,如何删除所有外部引号以仅接收* .ovpn文件的名称,例如:
spike10-st-d43d7eff66aa.ovpn
spike11-First-d43d7eff66aa.ovpn
spike12-rst-d43d7eff66aa.ovpn
spike13-irst-d43d7eff66aa.ovpn
答案 0 :(得分:4)
如果输入中不包含任何引号,则可以使用cut
cut -d\" -f2 filename
这将在引号上定界,并获得第二个字段。很简单。
答案 1 :(得分:4)
使用有效的HTML文件获取属性href
的值:
xmlstarlet select --text --template --value-of '//a/@href' -n file.html
输出:
pike10-st-d43d7eff66aa.ovpn spike11-First-d43d7eff66aa.ovpn spike12-rst-d43d7eff66aa.ovpn spike13-irst-d43d7eff66aa.ovpn
请参阅:xmlstarlet select --help
答案 2 :(得分:2)
您可以使用以下命令删除引号之外的所有内容:
awk -F\" '{print $2}' file
spike10-st-d43d7eff66aa.ovpn
spike11-First-d43d7eff66aa.ovpn
spike12-rst-d43d7eff66aa.ovpn
spike13-irst-d43d7eff66aa.ovpn
答案 3 :(得分:1)
请尝试以下操作(考虑到您的实际Input_file与show示例相同)。
awk 'match($0,/href="[^"]*/){print substr($0,RSTART+6,RLENGTH-6)}' Input_file
答案 4 :(得分:1)
此正则表达式可帮助您删除不需要的字符串。
.replace(/(.*)(["])(.*)(["])(.*)/g, '$3')
'<a href="spike10-st-d43d7eff66aa.ovpn">pike10-st-d43d7eff66aa.ovpn</a> 25-Sep-2018 13:49 4947'.replace(/(.*)(["])(.*)(["])(.*)/g, '$3')