Я использовал grep для запуска нескольких сканирований PII, и хотя он находил результаты, он действительно обнаружил слишком много ложных срабатываний.
Есть ли способ указать grep не запускать совпадение для файла, если он не содержит других данных?
Например, могу ли я сказать ему, чтобы он не запускал предупреждение о регулярном выражении для SSN, если файл не содержит текст вроде «ssn» или «номер социального страхования» где-то еще в файле?
grep -lZ ssn files_to_search | xargs -0 grep what_to_search_for
Конечно, просто передайте первый вывод другому grep. Grep for foo, а затем grep for bar, поэтому на выходе будут только строки, в которых есть как foo И бар.
grep SSN filename.txt | grep -e "ssn|social security number"
Это относится только к SSN в верхнем регистре, а затем передает любые строки с sss ИЛИ номером социального страхования. нижний регистр. Добавьте -i на всякий случай. Если вы действительно хотите, чтобы SSN и ssn, попробуйте это;
grep -i SSN filename.txt | grep social.security.number
Еще мне нравится показывать только строки, не есть бар. Выполните Grep для foo, затем grep -v bar. Только строки с foo, которые тоже не есть бар. Использование GNU grep 2.5.4 в окна