[118954] Я бы просто пропустил это через второе [119372]grep[119373], чтобы удалить их: [12187] [119374]-v[119375] меняет соответствие, печатая строки, которые не соответствуют шаблону, а [119376]-P[119377] включает Perl-совместимые регулярные выражения, которые позволяют использовать [119378]- отрицательные lookbehinds[119379]. Этот конкретный регекс, будет соответствовать [119380].js[119381], то есть [119382], а не [119383], заданный [119384] отладкой [119385], что означает (поскольку мы инвертируем совпадения), что будут распечатаны только те файлы [119386].js[119387]. Однако, как указал @QuestionOverflow в комментариях, это может привести к нежелательному побочному эффекту фильтрации строк [119388], которые содержат [119390]OK[119391] и [119392]js[119393], поскольку [119394]grep -v[119395] применяется ко всему выходному файлу, а не только к имени файла. Чтобы избежать этого, просто добавьте двоеточие (это то, что [119396]grep[119397] использует для отделения имени файла от содержимого файла):[12189]Это все равно не сработает, если Ваша строка ввода содержит [119398]foo.js:[119399] или если Ваше имя файла содержит [119400]:[119401]. Поэтому используйте другой подход: [12190]-T[119402]-T[119403] заставляет [119404]grep[119405] распечатать закладку между именем файла и его содержимым. Поэтому, если мы просто добавим [119406]-T[119407] в конец регекса, она будет совпадать только с именами файлов, а не с содержанием строки.[12191] Тем не менее, [119408] с помощью [119546] найдет [12192], возможно, будет иметь больший смысл, не смотря ни на что.[118965].
27.01.2020, 20:08
Ссылка