J'ai des journaux avec ces types de lignes: J'ai réussi à extraire des valeurs singulières hors du journal (par exemple, seule la requête) comme ceci: p> <time> <request> <request-time>
3 Réponses :
avec basé sur la sortie, vous obtenez grep code>
Considérez ceci à l'aide de GNU AWK pour FPAT:
$ cat tst.awk
BEGIN {
FPAT="([^[:space:]=]+=)?(\"[^\"]+\"|[^[:space:]]+)"
OFS=","
}
{
f["time"] = $1
for (i=2; i<=NF; i++) {
tag = val = $i
sub(/=.*/,"",tag)
sub(/^[^=]+=/,"",val)
gsub(/^"|"$/,"",val)
f[tag] = "\"" val "\""
}
print f["time"], f["request"], f["request_time"], f["client"], f["method"]
}
$ awk -f tst.awk file
"09/Feb/2019:11:25:51 +0000","GET /flask2 HTTP/1.1","0.011","10.0.0.148","GET"
Essayez cette perl one-liner avec les entrées données p>
Essayez
SED 'S /^ (S /^\("[^"]*"\ Demande = \ \ ("[^"] * "\ \ ([0-9.] * \ \) $ / \ 1 \ 2 \ 3 / '<< code>, voir Démo .