Преформат выходного CSV

У меня есть скрипт bash, который преобразует этот файл “origin.txt”

cxx-yyy-zzz-999-111 2018-01-1T00:10:54.412Z 2018-01-5T00:01:19.447Z 1111-6b54-eeee-rrrr-tttt 2018-01-1T00:41:38.867Z 2018-01-5T01:14:55.744Z 1234456-1233-6666-mmmm-12123 2018-01-1T00:12:37.152Z 2018-01-5T00:12:44.307Z 

в

 cxx-yyy-zzz-999-111,2018-01-1T00:10:54.412Z,2018-01-5T00:01:19.447Z 1111-6b54-eeee-rrrr-tttt,2018-01-1T00:41:38.867Z,2018-01-5T01:14:55.744Z 1234456-1233-6666-mmmm-12123,2018-01-1T00:12:37.152Z,2018-01-5T00:12:44.307Z 

Как я могу сделать это в bash с AWK?

У меня есть файл сценария awk с именем tmp.awk со следующим содержимым

 BEGIN { i=0 } { if (i==0) { f1=$0 i++ } else if (i==1) { f2=$0 i++ } else { i=0 print f1","f2","$0 } } 

И файл origin.txt со следующим содержимым

 cxx-yyy-zzz-999-111 2018-01-1T00:10:54.412Z 2018-01-5T00:01:19.447Z 1111-6b54-eeee-rrrr-tttt 2018-01-1T00:41:38.867Z 2018-01-5T01:14:55.744Z 1234456-1233-6666-mmmm-12123 2018-01-1T00:12:37.152Z 2018-01-5T00:12:44.307Z 

Вот моя команда awk и пример вывода.

 zb@server ~ $ awk -f tmp.awk origin.txt cxx-yyy-zzz-999-111,2018-01-1T00:10:54.412Z,2018-01-5T00:01:19.447Z 1111-6b54-eeee-rrrr-tttt,2018-01-1T00:41:38.867Z,2018-01-5T01:14:55.744Z 1234456-1233-6666-mmmm-12123,2018-01-1T00:12:37.152Z,2018-01-5T00:12:44.307Z 

Используя sed:

 sed 'N;N;s/\n/,/g' origin.txt 

Использование awk:

 awk '{ printf "%s", $0; if (NR % 3 == 0) print ""; else printf "," }' origin.txt 

Выход:

 cxx-yyy-zzz-999-111 2018-01-1T00:10:54.412Z 2018-01-5T00:01:19.447Z 1111-6b54-eeee-rrrr-tttt 2018-01-1T00:41:38.867Z 2018-01-5T01:14:55.744Z 1234456-1233-6666-mmmm-12123 2018-01-1T00:12:37.152Z 2018-01-5T00:12:44.307Z