При использовании GNU grep
, параметр -U
(рассматривать все файлы как двоичные )не действует, если вы не работаете в MS -DOS или Windows, и-n
(выводить номера строк совпадающих строки )не действуют в сочетании с-l
(выводят только имена соответствующих файлов ). Точно так же-C 1
(одна строка контекста вокруг совпадения )не имеет никакого эффекта с -l
.
Совпавшие файлы уже указаны в отдельных строках, поэтому я не совсем понимаю, почему они помещаются в одну строку.
grep -lr -Fiw 'Word1'.
должен делать то, что вы хотите. Я добавил -F
для сравнения строк вместо сопоставления регулярных выражений и -w
для сопоставления полных слов (, а не подстрок ).
Преобразование вывода в URI:
grep -lr -Fiw 'Word1'. | sed 's,^,http://,'
Это просто вставляет http://
в начале каждой строки, используя sed
.
Все это, очевидно, предполагает, что ни одно имя файла не содержит встроенных символов новой строки. Если бы они это сделали, sed
вставил бы свою строку перед каждой новой строкой -, разделяющей часть имени файла.