У меня есть несколько файлов журнала, в которых я хотел бы найти ошибки.В этих файлах также есть куча предупреждений, которые часто называются ошибками и другими ложными тревогами.
Сейчас у меня сложный процесс поиска файлов, которые я хочу изучить более внимательно:
grep error *.out | grep -v -e warning -e handle -e Sentry -e exitfuncs | \
awk -F: '{print $1}' | uniq
Я подозреваю, что это может быть более кратким, но я не могу заставить Греп сделать это.Справка?
ввод:
file1.out
error. bad things happened.
error. warning, function deprecated
error. no really, this is bad.
file2.out
error. warning, function deprecated
error. warning, function deprecated
file3.out
error. warning, function deprecated
error. another bad thing here.
желаемый вывод:
file1.out
file3.out
Объяснение текущей команды: ошибка grep * .out возвращает каждую строку из файлов примеров:
file1.out: error. bad things happened.
file1.out: error. warning, function deprecated
...
file3.out: error. another bad thing here.
grep -v -e предупреждение удаляет предупреждения.awk -F: устанавливает разделитель полей равным: и возвращает первое поле из ввода, которое является именем файла.uniq удаляет дубликаты имен файлов, поэтому file1.out не появляется дважды.