Быстрая команда awk
поможет вам начать работу:
awk '$2 ~ /Success/{a=$4;next}; $2 ~ /Completed/{b=$8;c=$13;print a,b,c}' terminal_output.txt
Это не будет работать, если у вас есть несколько строк Success
перед строкой Completed
и т. д.
В отличие от других оболочек, -похожих на sh, zsh не выполняет раскрытие подстановочных знаков и разбиение слов при раскрытии переменной без кавычек. $TEST_PATH
без кавычек — это почти то, что вы интуитивно ожидаете :простой подстановки значения переменной. «Почти», потому что, если в результате получается пустое слово, это слово вообще удаляется.
Чтобы взять значение переменной и раскрыть в нем подстановочные знаки, используйте ${~…}
форму раскрытия параметра :${~TEST_PATH}
, которое также можно записать без фигурных скобок $~TEST_PATH
.
Если совпадений нет, $~TEST_PATH
вызывает ошибку. Чтобы вместо этого получить пустой список, используйте квалификаторN
glob :$~TEST_PATH(N)