Вариант для других ответов с использованием awk
с разделителем полей , представляющим собой '|'
с необязательными пробелами с обеих сторон, как позволяет GNU awk
, затем принимает поля 2
и 3
как поля, требуемые в каждой записи, и форматирование вывода, как описано в вопросе, с закрывающим " )"
, указанным в правиле END
:
$ awk -F' *\\| *' '
NR>3 && $1~/^[+]/{exit} # exit condition first line w/^+
NR==4{$1=$1; printf "(%s %s", $2,$3} # 1st data record is 4
NR>4{$1=$1; printf ", %s %s", $2,$3} # process all remainng records
END{print " )"} # output closing " )"
' table
(_id bigint, starttime string )
( примечание: если вам не нужны два пробела перед закрытием ")"
, просто удалите их из print
в правиле END
)
Вместо использования BEGIN
первой записи Проценты (4
) используются для обеспечения открытия "("
. Посмотрите вещи и дайте мне знать, если у вас есть вопросы.