shadyabhi@archlinux ~ $ echo '2012-02-31 10:21:41,333 ERROR [65] (GeneralAppliancesBean.java:135) - Exception java.net.ConnectException: Connection timed oot' | cut -d "," -f 1
2012-02-31 10:21:41
shadyabhi@archlinux ~ $ echo '2012-02-31 10:21:41,333 ERROR [65] (GeneralAppliancesBean.java:135) - Exception java.net.ConnectException: Connection timed oot' | cut -d " " -f 5
(GeneralAppliancesBean.java:135)
shadyabhi@archlinux ~
cut
лучше подходит для этого.
Если ваши журналы находятся в файле с именем logs, используйте это.
while read myline
do
echo "Date: "$(echo $myline | cut -d "," -f 1)
echo "Error: "$(echo $myline | cut -d " " -f 5)
done < logs
Если ошибки многострочные (к которым я отношусь скептически):
используйте grep "ERROR" logs | cut -d "," -f 1
для даты и grep "ERROR" logs | cut -d " " -f 4
для класса и номера строки.