Простой способ избавиться от начальных полей - использовать cut
:
cut -d' ' --complement -f1-5
Я считаю, что для этого требуется версия cut для GNU, поскольку флаг --complement
является расширением.
Я бы использовал awk, чтобы разделить остальное на поля:
awk '{
outfile=$(NF-2)
errfile=$NF
for(n=NF; n>(NF-4); n--) { $n = ""}
printf("command: %s\noutput: %s\nerror: %s\n", $0, outfile, errfile)
}'
Обратите внимание, что этот подход предполагает несколько предположений:
- Пробелы могут быть стандартизированы для одиночных пробелов
- и stdout, и stderr перенаправлены
- в именах файлов вывода и ошибок нет пробелов