0

URL から必須フィールドを解析する必要があります。この目的のために、単語間にスペース区切りがないため、その URL を 1 文字ずつトラバースする必要があります。しかし、私はそれを得ることができません。私は以下を試しました

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 に答える