Поиск DNS с выводом JSON

Вы можете внедрить переменную оболочки в свой awk-скрипт с помощью опции -v:

#!/bin/bash

#these are bash variables
file=$1
header=$(head -n1 $file)
awktoken=$2

############################
# awk script               #
############################
read -d '' awkscript << 'EOF'
BEGIN { OFS = "\\t" }

/^@/  {
   for (i = 1; i <= NF; ++i)
      header[i] = $i
   next
}

NR > 1 && $variable != p {
   #output two blank lines if needed
   if (print_blank) {
      print "\\n"
   }
   print_blank = 1 

   for (i = 1; i <= 3; ++i)
      printf("%s%s", header[i], OFS)

   for (i = 4; i < NF; ++i)
      printf("%s_%s%s", $variable, header[i], OFS)
   printf("%s_%s%s", $variable, header[NF], ORS)
}

{ p=$variable; print }
EOF

############################
# end awk script           #
############################

awk -vvariable="$awktoken" "$awkscript" ${tmp} > ${output}

variable— это имя переменной в этом примере. Обычно вы бы вызывали его без $, но это осталось для того, чтобы он расширился до $3или любого другого номера, который вы выберете

.
0
04.02.2021, 11:03
1 ответ

ogham/dog :Команда -строка DNS-клиент имеет вывод JSON, как описано в разделе Параметры вывода:

-J, --json               Display the output as JSON

Сам еще не пробовал. Возможные предостережения:

  • на момент написания (2021 -06 -14 )была только начальная версия v0.1.0 (2020 -11 -07 ), и широкой поддержки распространения пока нет.

  • доступен статически скомпилированный двоичный файл для x86 -64, но, к сожалению, требуется GLIBC _2.32 . Это ограничивает его самыми последними дистрибутивами; он не будет работать, например. на Ubuntu 20.04 LTS, которая имеет только GLIC _2.31.

1
14.06.2021, 11:53

Теги

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