我有一个类似下面的文件
HTTP/1.1 401 Unauthorized
Server: WinREST HTTP Server/1.0
Connection: Keep-Alive
Content-Type: text/html
Content-Length: 89
WWW-Authenticate: ServiceAuth realm="WinREST", nonce="1828HvF7EfPnRtzSs/h10Q=="
<html><head><title>Unauthorized</title></head><body>Error 401:
Unauthorized</body></html>
我需要获取nonce,这只是1828HvF7EfPnRtzSs / h10Q ==在前面og nonce =
我正在使用
grep -oP 'nonce="\K[^"]+' response.xml
但P参数不再有效。 我怎么能用awk甚至Grep用另一个参数做同样的事情呢?
提前致谢
答案 0 :(得分:1)
解决方案第一: 关注awk
可能对您有帮助。
awk -F"\"" '/nonce/{print $(NF-1)}' Input_file
解决方案第二: 一个sed
解决方案也是如此。
sed -n '/nonce=/s/\(.*nonce\)="\([^"]*\)\(.*\)/\2/p' Input_file
上述两个代码中的输出均为1828HvF7EfPnRtzSs/h10Q==
。
答案 1 :(得分:1)
sed
$ sed -nE 's/.*nonce="([^"]+)"/\1/p' file
1828HvF7EfPnRtzSs/h10Q==
使用grep
管道
$ grep -oE 'nonce=\S+' file | cut -d= -f2- | tr -d '"'
1828HvF7EfPnRtzSs/h10Q==