我是linux的新手并尝试在日志中的字符串之间打印。
以下是输入文件:
2018-04-15 00:01:22 https://abc123456.net;~galv=http%3A%2F%2Fwww.abc.es%sadn.html? Mozilla/5.0
我试图在galv =和?之间打印网址?作为输出:
http%3A%2F%2Fwww.abc.es%sadn.html
任何帮助都会非常感激。
答案 0 :(得分:-1)
如果您使用:
echo "2018-04-15 00:01:22 https://abc123456.net;~galv=http%3A%2F%2Fwww.abc.es%sadn.html? Mozilla/5.0" | awk -v FS="(~galv=|?)" '{print $2}'
它会给你正确的输出。如需进一步使用,您可以按照以下语法
awk -v FS="(FROM_KEYWORD|TO_KEYWORD)" '{print $2}'
答案 1 :(得分:-1)
试试这个 -
$cat inputfile
2018-04-15 00:01:22 https://abc123456.net;~galv=http%3A%2F%2Fwww.abc.es%sadn.html? Mozilla/5.0
$awk -F'[=,?]' '{ print $2}' inputfile
http%3A%2F%2Fwww.abc.es%sadn.html
答案 2 :(得分:-1)
你可以尝试这个awk(我认为所有的awk)
awk '{gsub(/.*galv=|\?.*/,"")}1' infile