Использовать данные между точками с запятой, разделенными пробелом

Документация по$GENERATEдает следующий синтаксис:

$GENERATE start-stop[/step] lhs[{offset[,width[,type]]}] rr-type rhs[{offset[,width[,type]]}]

где rr-type— CNAME, DNAME, A, AAAA, NS, PTR,...

Следовательно, ваша линия:

$GENERATE 1-100 host$.example.com. IN A 10.20.45.$

вместо этого должно быть:

$GENERATE 1-100 host$.example.com. A 10.20.45.$

Странно, что bindне выдал никаких сообщений об ошибках/предупреждениях по этому поводу.

0
13.09.2019, 22:11
2 ответа

Более подробное решение:

echo "scott name1;tiger name2;elephant name3;mouse name4;bla1 name5;bla2 name6" \
  | tr ';' '\n' | grep "scott" | cut -d ' ' -f 2
3
28.01.2020, 02:13

Сsed:

$ echo "scott name1;tiger name2;elephant name3;mouse name4;bla1 name5;bla2 name6" \
  | sed -n 's/\(^\|.*;\)scott \([^;]*\).*/\2/p'
name1

или с "тигром":

$ echo "scott name1;tiger name2;elephant name3;mouse name4;bla1 name5;bla2 name6" \
  | sed -n 's/\(^\|.*;\)tiger \([^;]*\).*/\2/p'
name2
  • sed -nотключить автоматическую печать пространства шаблона
  • s/замена
  • \(^\|.*;\)соответствует началу строки ^или любым символам, за которыми следует точка с запятой .*;в качестве первой группы захвата с\(...\)
  • scottсоответствует слову «scott», за которым следует пробел
  • \([^;]*\)вторая группа захвата, соответствует любым символам, не являющимся -точками с запятой (часть, которую мы хотим)
  • .*соответствует любым следующим символам
  • /\2/заменить второй группой захвата
  • pсоответствие печати
1
28.01.2020, 02:13

Теги

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