Сperl
$ perl -F, -lane 'map {$_=qq("$_")} @F[0,4,5]; print join ",", @F' ip.txt
"2018-03-18 4:56:17",255.255.255.255,00,ssh,"admin","123"
-F,
использовать ,
в качестве разделителя полей ввода, результаты доступны в массиве @F
map {$_=qq("$_")} @F[0,4,5]
обязательные элементы массива в двойных кавычках. Индекс начинается с 0
. Оператор qq
используется здесь, чтобы избежать экранирования двойных кавычек, qq("$_")
такой же, как"\"$_\""
print join ",", @F
напечатать измененный массив с ,
в качестве разделителя
Другой способ сделать сawk
$ awk -v q='"' 'BEGIN{split("1 5 6",a); FS=OFS=","}
{for(i in a) $a[i]=q $a[i] q} 1' ip.txt
"2018-03-18 4:56:17",255.255.255.255,00,ssh,"admin","123"
-v q='"'
сохранить двойную кавычку как значение в переменной q
split("1 5 6",a)
индекс сохранения будет изменен как значения в a
массиве (по умолчанию разделен на пробелы, FS еще не изменен)FS=OFS=","
изменить разделитель ввода/вывода на,
for(i in a) $a[i]=q $a[i] q
изменить обязательные поля 1
идиоматический способ распечатать содержимое$0
Мне удалось устранить эту неполадку с помощью:
sudo /opt/puppetlabs/bin/puppetserver foreground &
Это позволило мне увидеть любые ошибки или проблемы, возникающие при запуске Puppet. Как оказалось, сначала не было никаких ошибок (, отсюда и путаница ). Однако, когда одновременно зарегистрировалось достаточное количество агентов, системе стало не хватать -из -памяти, и все начало падать. Я не знаю, почему этого нигде не было в журналах.
Решение состояло в том, чтобы перенести все на виртуальную машину с большим объемом памяти. Как только это было сделано, приложение ответило быстрее, полностью загрузилось и прослушивало все порты / работало правильно.
Надеюсь, это поможет кому-то еще, кто наткнется на этот пост.