Если patterns
содержит по одному шаблону в строке, вы можете сделать что-то вроде этого:
awk 'NR==FNR{a[$0];next}{for(i in a)if($0!~i)next}1' patterns -
Или это соответствует подстрокам вместо регулярных выражений:
awk 'NR==FNR{a[$0];next}{for(i in a)if(!index($0,i))next}1' patterns -
Чтобы вывести все строки, а не ни одной, в случае, если patterns
пуст, замените NR==FNR
на FILENAME==ARGV[1]
, или на ARGIND==1
в gawk
.
Эти функции выводят строки STDIN, которые содержат каждую строку, указанную в качестве аргумента, как подстроку. ga
означает grep all, а gai
игнорирует регистр.
ga(){ awk 'FILENAME==ARGV[1]{a[$0];next}{for(i in a)if(!index($0,i))next}1' <(printf %s\\n "$@") -; }
gai(){ awk 'FILENAME==ARGV[1]{a[tolower($0)];next}{for(i in a)if(!index(tolower($0),i))next}1' <(printf %s\\n "$@") -; }
Я не могу это воспроизвести.
Для этого конкретного файла я получил более низкие скорости при некоторых попытках, но это не имело никакого отношения к аргументам curl
, это произошло случайно и с обоими вариантами.
Версия curl
, которая у меня есть (curl 7.52.1 (x86_64-pc-linux-gnu)
, из Debian ), также не обрабатывает /dev/null
иначе, чем другие выходные файлы, strace
показывает open()
и write()
s для это:
$ strace -etrace=open,write curl -s http://www.google.com/ -o /dev/null
[...]
open("/dev/null", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 4
write(4, "<!doctype html><html itemscope=\""..., 4096) = 4096
write(4, "px 0 4px;margin-left:4px}input{f"..., 4096) = 4096
...
+++ exited with 0 +++
Вот результаты моих последних двух прогонов, существенных различий между > /dev/null
и-o /dev/null
:
$ curl http://dl.google.com/dl/android/aosp/sailfish-pq2a.190205.003-factory-164a7269.zip > /dev/null
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1344M 100 1344M 0 0 94.5M 0 0:00:14 0:00:14 --:--:-- 91.0M
$ curl http://dl.google.com/dl/android/aosp/sailfish-pq2a.190205.003-factory-164a7269.zip -o /dev/null
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1344M 100 1344M 0 0 89.3M 0 0:00:15 0:00:15 --:--:-- 92.8M