Следующая команда awk
должна делать то, что вы хотите, если ввод в точности соответствует описанию.
(но он не выполняет никакой проверки ошибок):
awk '/\|/ {split($0, devices, "|"); next} /^$/ {print; next}
{for (i=1; i<NF; i++) printf "%s,%s|", devices[i], $i; printf "%s,%s\n", devices[NF], $NF}'
|
, разделите ее на |
s в массив под названием «устройства».
(Нам нужно использовать \ |
, потому что простой |
означает ИЛИ , как в / cat | dog /
.)
Затем перейдите к следующей
строке входных данных (т.е. не выполняйте следующие команды). |
, но без новой строки.
Затем выведите последнее поле с новой строкой, но без |
. Не могу найти способ с трубой, но можно попробовать так:
obexftp -b 10:68:3F:57:7D:B6 - p $(cat inputFile.tar)
Вернуть sdout команды в $( )