Первое предположение заключается в том, что bash, вероятно, не самый лучший выбор, если у вас много журналирования.
Кроме того, написание сценариев в значительной степени выполняет именно то, что требуется.Таким образом, это будет:
1) установить цикл для чтения строк ввода
#!/bin/bash
cat $* | while read line ; do
2) проверить, начинается ли строка ввода с отметки времени (не надо было искатьукажите регулярное выражение.
if echo "$line " | grep '^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]' ; then
true
Обратите внимание, что, если условие истинно, grep
выведет строку, поэтому для этого не требуется отдельное эхо.
3) В противном случае выполнитенекоторые вещи с отметкой времени эпохи, которые я не совсем понимаю, что вы хотите:
else
estamp=$(echo "$line" | sed 's/:.*//')
rol=$(echo "$line" | sed 's/[0-9.]*://)
# Do something with adding to the timestamp that I did not grasp
echo "$estamp:$rol"
fi
Или что-то в этом роде.
О да, закройте цикл
done