выходы juju для git charm

awk метод:

ARRAY=($(awk 'BEGIN{ORS=" "} /SYNTAX/ && /INTEGER/,/MAX-ACCESS/ {gsub(/SYNTAX|INTEGER|MAX-ACCESS.*|[[:blank:]]|{|}/,"");gsub(/\(/," (");for (i=1;i<=NR;i++) {if ($i~/\(|\)/) $i="" };print}' testfile.txt))

Объяснение:

Мы настроили структуру ARRAY = (...) с подстановкой команд $ (... ) внутри него, чтобы поймать вывод внутренней команды awk в массив. Распечатайте все из строки, в которой есть SYNTAX и INTEGER (чтобы избежать случаев, когда между SYNTAX и INTEGER неизвестно), до MAX-ACCESS. удалите слова SYNTAX, INTEGER, MAX-ACCESS и все, что следует за ним, удалите пустые строки и две фигурные скобки. Измените переменные из переменной (1) в переменную (1), т. Е. Разделите их пробелом. На этом этапе мы разделим эти поля на два. Пройдите в цикл, чтобы найти поля, в которых есть фигурные скобки, и удалите их. Вы можете спросить, что, если поле содержит пробелы, например (1) или (1)? Разве это не удалялось бы только (1 в последнем примере? Ну, мы удалили пробелы до этого шага, поэтому это должно быть безопасно. Наконец, распечатайте все, разделите пространство вместо стандартной по умолчанию для разделителя выходной записи. массив

Пояснение

Давайте поместим все в скрипт awk:

#!/usr/bin/awk -f
BEGIN{ORS=" "} 

/SYNTAX/ && /INTEGER/,/MAX-ACCESS/ {
   gsub(/SYNTAX|INTEGER|MAX-ACCESS.*|[[:blank:]]|{|}/,"");
   gsub(/\(/," (");
   for (i=1;i<=NR;i++) {
        if ($i~/\(|\)/) $i="" 
   };
print }

Сохраним этот исполняемый файл сценария, и выполните так:

$ ARRAY=($(./varscript.awk testfile.txt ))                                                                               


$ echo ${ARRAY[0]}
copyOperationPending


$ echo ${ARRAY[1]}                                                                                                       
copyInProgress


$ echo ${ARRAY[*]}                                                                                                       
copyOperationPending copyInProgress copyOperationSuccess copyInvalidOperation copyInvalidProtocol copyInvalidSourceName copyInvalidDestName copyInvalidServerAddress copyDeviceBusy copyDeviceOpenError copyDeviceError copyDeviceNotProgrammable copyDeviceFull copyFileOpenError copyFileTransferError copyFileChecksumError copyNoMemory copyUnknownFailure copyInvalidSignature
0
задан 30 April 2018 в 17:36

0 ответов

Другие вопросы по тегам:

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