Благодаря @Imorg вы можете использовать:
pssh -h /tmp/hosts -i "uname;date" | grep -o \[[A-Z][A-Z][A-Z]*\].* | sed -Ee 's/(^\[FAILURE\]) (SERVER[0-9]*) (.*)/\1, \2, \3/g' -Ee 's/(^\[SUCCESS\]) (.*)/\1, \2,'"$(uname)"','"$(date)"'/g'
Итак, grep -o \[[A-Z][A-Z][A-Z]*\].*
выдаст результат как:
[FAILURE] SERVER1 Exited with error code 255
[SUCCESS] SERVER2
[SUCCESS] SERVER3
[SUCCESS] SERVER4
[SUCCESS] SERVER5
[SUCCESS] SERVER6
И sed -Ee 's/(^\[FAILURE\]) (SERVER[0-9]*) (.*)/\1, \2, \3/g'
, between strings containing
НЕИСПРАВНОСТЬ `и СЕРВЕР и между EXITED.
И sed -Ee 's/(^\[SUCCESS\]) (.*)/\1, \2,'"$(uname)"','"$(date)"'/g'
добавит ,
между первыми двумя словами и добавит ,output of uname command, output of date command
.
Итоговый вывод будет выглядеть так::
[FAILURE], SERVER1, Exited with error code 255
[SUCCESS], SERVER2,Linux,Fri Jan 25 19:27:30 UTC 2019
[SUCCESS], SERVER3,Linux,Fri Jan 25 19:27:30 UTC 2019
[SUCCESS], SERVER4,Linux,Fri Jan 25 19:27:30 UTC 2019
[SUCCESS], SERVER5,Linux,Fri Jan 25 19:27:30 UTC 2019
[SUCCESS], SERVER6,Linux,Fri Jan 25 19:27:30 UTC 2019