Создать файл в виде таблицы из файла журнала значений ключа -

Вы можете использовать glibc getentздесь:

$ getent ahostsv4 0xD83ACD2E | { read ip rest && getent hosts "$ip"; }
216.58.205.46   mil04s24-in-f46.1e100.net

Другой perlподход:

$ perl -MSocket -le '($n)=gethostbyaddr(inet_aton("0xD83ACD2E"), AF_INET); print $n'
mil04s24-in-f46.1e100.net
2
27.12.2020, 06:46
1 ответ
$ cat tst.awk
BEGIN {
    OFS = "\t"
    numTags = split("Time id status tag price barcode",tags)
    for (tagNr=1; tagNr<=numTags; tagNr++) {
        tag = tags[tagNr]
        printf "%s%s", tag, (tagNr<numTags ? OFS : ORS)
    }
}
/= Request =/ {
    time = substr($0,1,23)
}
sub(/^[[:space:]]*([0-9]+\|)?/,"") {
    tag = val = $0
    sub(/[[:space:]]*=.*/,"",tag)
    sub(/[^=]+=[[:space:]]*/,"",val)
    tag2val[tag] = val
}
/^}/ {
    tag2val["Time"] = time
    for (tagNr=1; tagNr<=numTags; tagNr++) {
        tag = tags[tagNr]
        val = (tag in tag2val ? tag2val[tag] : "Null")
        printf "%s%s", val, (tagNr<numTags ? OFS : ORS)
    }
    delete tag2val
}

$ awk -f tst.awk file | column -s$'\t' -t
Time                     id    status  tag     price  barcode
27/12/2020 00:05:30,848  Null  0       abcdef  35     Null
27/12/2020 00:05:30,848  123   404     ghijkl  35     26121111
27/12/2020 00:10:35,941  Null  0       abcdef  35     Null
27/12/2020 00:10:35,941  123   404     ghijkl  35     26121111
1
18.03.2021, 22:40

Теги

Похожие вопросы