Вопрос

Мне поручено пометить приложение белым цветом, чтобы оно не содержало ссылок на нашу компанию, веб-сайт и т.д.Проблема, с которой я сталкиваюсь, заключается в том, что у меня есть много различных шаблонов для поиска, и я хотел бы гарантировать, что все шаблоны будут удалены.Поскольку приложение не было разработано собственными силами (полностью), мы не можем просто искать вхождения в messages.properties и готово.Мы должны использовать JSP, Java-код и xml.

Я использую grep для фильтрации результатов следующим образом:

grep SOME_PATTERN . -ir | grep -v import | grep -v // | grep -v /* ...

Шаблоны экранируются, когда я использую их в командной строке;однако я не считаю, что такое сопоставление с шаблоном является очень надежным.Возможно, могут быть вхождения, в которых есть import (маловероятно) или даже /* (начало комментария javadoc).

Весь текст, выводимый на экран, должен быть взят из какого-либо строкового объявления или файла констант.Итак, я могу предположить, что найду что-то вроде:

public static final String SOME_CONSTANT = "SOME_PATTERN is currently unavailable";

Я хотел бы найти это явление, а также:

public static final String SOME_CONSTANT = "
SOME_PATTERN blah blah blah";

В качестве альтернативы, если бы у нас был внутренний поисковик / автоматизированные тесты, я мог бы просто извлечь xhtml с каждой страницы и проверить исходный код, чтобы убедиться, что он чистый.

Это было полезно?

Решение

Я бы использовал сэд, не grep ( греп )!Sed используется для выполнения базовых текстовых преобразований во входном потоке.Попробуй s/regexp/replacement/ опция с помощью команды sed.

Вы также можете попробовать авк команда.У него есть возможность -F для разделения полей вы можете использовать его с ; для разделения строк ваших файлов с ;.

Однако лучшим решением будет простой скрипт в Perl - язык программирования или в Питон.

Другие советы

Чтобы решить вашу проблему по поводу пропуска некоторых вхождений, почему бы не фильтровать постепенно:

  1. Создайте текстовый файл со всеми возможными совпадениями в качестве отправной точки.
  2. Используйте filter X (grep для '^import', например), чтобы сбрасывать вероятные ложные положительные результаты в файл tmp.
  3. Снова используйте фильтр X, чтобы удалить эти совпадения из вашего рабочего файла ( копия [1]).
  4. Выполните быстрый визуальный просмотр файла tmp и добавьте все реальные совпадения обратно в.
  5. Повторите [2]-[4] с другими фильтрами.

Конечно, это может занять некоторое время, но не похоже, что это то, что вы хотите сделать неправильно...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top