1

У меня есть файл, который имеет шаблон ниже

=================================================

4601 -- it means completed
4602 -- it means failed
4603 -- it means timed out

=================================================

Если я сделаю хвост -10 в файл, то получу любой шаблон сверху.

Я хочу набрать больше трех цифр, а затем отобразить сообщение «Завершено | Сбой | Тайм-аут».

Любая идея?

Спасибо!

1 ответ1

0

Вот небольшой скрипт, который вы можете использовать для тестирования - запустите его в безопасном месте, например, /tmp или около того:

# Prepare
rm *.txt
echo 4601 -- it means completed > f1.txt
echo 4602 -- it means failed > f2.txt
echo 4603 -- it means timed out > f3.txt

# Test
for i in *.txt; do echo
  echo --- Processing file $i
  if grep -qs 4601 $i; then
    echo Completed
  elif grep -qs 4602 $i; then
    echo Failed
  elif grep -qs 4603 $i; then
    echo Timed-Out
  fi
done

Спасибо @grawity за полезный совет (см. Его комментарий ниже) за то, что он не создает ненужных субоболочек / запускает тесты / ускоряет его здесь!

Он создаст 3 файла - f1.txt, f2.txt и f3.txt, каждый из которых содержит один код, который вы упомянули, а затем обработает каждый из файлов, генерируя нужные вам сообщения.

Надеюсь это поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .