我有一个包含以下网址的文件
http://10.32.43.211:25280/sherlock/store/pyy/debug? q =彪马+鞋子+短裤+男短裤=真&现金=假&密码= 560102
http://10.32.43.211:25280/sherlock/store/poq/debug? q =耐克+鞋+短裤+女短裤=真&现金=假&密码= 560102
我想提取以下内容(使用awk,而不是gawk) q =彪马短裤男 q =阿迪达斯鞋子短裤男
我需要知道获取后如何用空白替换'+'
q =耐克+鞋子+短裤+女士
我尝试了
awk -F '?' '{ print $2 }' urls_details, but the printing everything after the ?,
q=puma+shoes+shorts+men & shorts = true & cash-enable = false & pincode = 560102
q=addidas+shoes+shorts+men & shorts = true & cash-enable = false & pincode = 560102
q=nike+shoes+shorts+women & shorts = true & cash-enable = false & pincode = 560102
我怎样才能只检索&之前的字段? q =耐克+鞋子+短裤+女士
答案 0 :(得分:0)
在这种情况下,考虑到您的实际Input_file与所示示例相同,那么下面的内容可能会对您有所帮助。
awk 'match($0,/http:\/\/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+\/.*\? /){gsub(/+/," ",$2);print $2}' Input_file
OR(溶液的一种非衬里形式):
awk '
match($0,/http:\/\/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+\/.*\? /){
gsub(/+/," ",$2);
print $2
}' Input_file
match
的{{1}}函数中的正则表达式将检查某行是否具有从http到awk
的URL(如果匹配),然后打印该行的第二列。