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 .