Показать только совпадающие результаты [закрыто]

Если вы новичок в bash, это, вероятно, легкий вопрос. Мой код ниже работает нормально, проблема только в том, что отображается весь вывод. Я только хочу, чтобы он возвращал имя файла, где есть совпадение, и не печатал вывод в терминале в противном случае. Может ли кто-нибудь протянуть руку помощи?

      for file in *.otr; do binwalk -R "\x4c\75" $file; done

1 ответ

Поскольку, похоже, не возвращает (ненулевой) статус, когда ничего не находит, вы можете (например) использовать grep чтобы проанализировать и отбросить его вывод и сгенерировать для вас статус.

      for file in *.otr; do
  binwalk -R $'\x4c\75' "$file" \
  | grep -q 'Raw signature' && echo "$file"
done

Если Raw signature не является достаточно универсальной строкой для сопоставления, вам нужно будет использовать более сложное регулярное выражение для переваривания binwalkвывод.

Другие вопросы по тегам