
У меня есть скрипт оболочки Unix, который генерирует вывод из журнала.
for i in HistSimBasislieferung hedgeAccountingF4PublicSend;do
report1=$(echo -n $i:)
date1=$(grep -e $i $PALME_CONF | grep "The job finished" | tail -1 | awk '{print $1,$2}'|\<br/> sed 's/^.\(.*\).$/\1/')
final="$report1 $date1"
echo "$final"
done
На данный момент вывод выглядит так:
HistSimBasislieferung 2015-03-11 01:03:02
hedgeAccountingF4PublicSend 2015-03-11 00:16:34
Но мне нужно что-то вроде этого:
HistSimBasislieferung,hedgeAccountingF4PublicSend
2015-03-11 01:03:02,2015-03-11 00:16:34
Есть ли у вас какие-либо предложения, как это можно сделать?
Я сделал так, как вы предложили:
for i in HistSimBasislieferung hedgeAccountingF4PublicSend;do
echo -n $i > report_log
grep -e $i $PALME_CONF | grep "The job finished" | tail -1 | awk '{print $1,$2}' | sed 's/^.\(.*\).$/\1/' > date_log
done
cat < report_log | xargs echo | tr ' ' ',';
cat < date_log | xargs echo | tr ' ' ',';
echo "" > report_log; echo "" > date_log
но на выходе получилось:
hedgeAccountingF4PublicSend2015-03-11,00:16:34
I need it like this:
HistSimBasislieferung,hedgeAccountingF4PublicSend,
2015-03-11 03:05:40,2015-03-11 02:12:19,
решение1
Этот однострочный текст может показаться некрасивым, но я думаю, что он выполняет свою задачу (если я правильно понял ваш вариант использования).
your_shell_script.sh | cut -d ' ' -f 1 | tr '\n' ',' | sed 's/,$/\n/'; your_shell_script.sh | cut -d ' ' -f '2-' | tr '\n' ',' | sed 's/,$/\n/'
решение2
Это циклический скрипт, поэтому он будет перезаписывать переменную каждый цикл. Мое предложение здесь - создать файл журнала для "отчета" и файл журнала для "даты" тоже (добавить журнал).
В конце вашего скрипта (сразу под строкой «done») выполните следующую команду:
cat <\report_log_file> | xargs echo | tr ' ' ',';
cat <\date_log_file> | xargs echo | | tr ' ' ','
или создайте другой циклический сценарий.
for i in <\report_log_file> <\date_log_file>; do
cat $i | xargs echo | tr ' ' ',';
done
затем очистите файлы журналов:
echo "" > report_log_file; echo "" > date_log_file