Используйте perl
:
perl -nle 'print "$1 $ARGV" if /(pattern)/' a.*
И для вопроса, да, grep
откройте каждый файл для поиска, затем закройте его, откройте следующий файл и так далее.
$ strace -e trace=file,close grep Power 1.txt 2.txt
....
openat(AT_FDCWD, "1.txt", O_RDONLY) = 3
1.txt:Power and signal
1.txt:VDD Digital Power This pin provides power supply connection for the digital
1.txt:VMEASPOS Digital Power Voltage to be measured.
1.txt:VREFEXT Digital Power Reference voltage input of 1.024V %for VSENS calibration.
close(3) = 0
openat(AT_FDCWD, "2.txt", O_RDONLY) = 3
2.txt:0.078362 Power
2.txt:Power
close(3)
Я не могу придумать лучшего способа сделать это. Почти инструменты обработки текста также ведут себя так. Единственное отличие, которое я вижу, это то, как они называют систему. grep
используйте openat(), в то время как perl
, awk
используйте open().
Блокирующие веб-сайты - это как-то игра для мыши, и вам придется комбинировать много методов, чтобы минимизировать количество веб-прокси, которые ваши пользователи могут достичь / доступ.
Метод 1 - Блокировка общих прокси Regexes:
Отредактируйте ваш файл /etc/squid/squid.conf
, используя редактор выбора и добавить следующие строки:
acl regex-prox-sites urlregex –i "/etc/squid/proxy_regex.acl"
http_access deny regex-prox-sites
Теперь создайте файл /etc/squid/proxy_regex.acl
и добавьте следующую строку:
browse.php
view?q=
Вы также можете добавить слово Proxy
в этом списке, но это может вызвать ложные срабатывания. Используя этот метод, вы сократите доступом пользователей к WebProxies, которые имеют общие файлы PHP выше и используют эти слова на любом месте URL.
Способ 2 - Используйте Squidguard и загрузить онлайн-представленные списки
Это займет некоторое время, и вам, вероятно, придется компилировать источники Squidguard, если ваше распределение не упаковывает его, и использовать онлайн-списки, такие как . Вы можете обратиться к документам Squidguard, где есть много документации с шагами установки и как использовать черные списки из Интернета.
После завершения установки вам нужно будет добавить параметр Rewrite URL в конце вашего файл Squid.conf
. Пример:
echo "url_rewrite_program $(which squidGuard)" >> /etc/squid/squid.conf
Метод 3 - Создайте свой собственный скрипт, чтобы создать черные списки с сайтов, которые предоставляют информацию о веб-прокси.
Этот пример загрузит HTML-файл из Proxy.org и извлекает сайты из HTML.
wget -q -U "Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0" http://proxy.org/cgi_proxies.shtml -O - |grep "\<option value=\"" | grep -v random | cut -d \" -f 2
Обратите внимание, что этот простой скрипт будет работать только с этим сайтом, и другие провайдеры прокси могут иметь ограничения входа в систему или другие методы, чтобы заблокировать вас от загрузочной информации.
Вы можете перенаправить вывод этой команды в другой файл и создать блок Dstdomain
на Squid, следуя на примере метода 1.