0

我有一个要求是从 URL 解析必填字段。为此,我需要逐个字母遍历该 URL,因为任何单词之间没有空格分隔。但我无法得到那个。我已经尝试过以下

awk '{FS = "";for (i = 2; i <= NF; i++) {print $i}}'  file

该文件包含这个

https://stackoverflow.com/questions/ask/submit?s=sddasdsadSOMEFIELD=8171 WANTEDFIELD=121212 SOMEFIELD=1201212...

所以我的想法是逐个字母遍历这个 URL,然后到达必填字段.. 但我无法做到这一点。请有任何建议

4

1 回答 1

1

这可以工作,但假设模式带有 = 和 *。

echo "http://stackoverflow.com/questions/ask/submit?s=sddasdsadSOMEFIELD=8171*WANTEDFIELD=121212*SOMEFIELD=1201212..." |awk -F "[*=]" -vFIELDNAME="WANTEDFIELD"  '{for (i=1;i<=NF;i++){if(match($i,FIELDNAME)){printf "%s\t", $(i+1)}};printf "\n"}'

输出:

121212

更改为 SOMEFIELD 作为目标字段:

echo "http://stackoverflow.com/questions/ask/submit?s=sddasdsadSOMEFIELD=8171*WANTEDFIELD=121212*SOMEFIELD=1201212..." | awk -F "[*=]" -vFIELDNAME="SOMEFIELD"  '{for (i=1;i<=NF;i++){if(match($i,FIELDNAME)){printf "%s\t", $(i+1)}};printf "\n"}'

结果是:

8171    1201212...
于 2012-07-03T12:11:42.873 回答