Я сказал бы, что это обычно - плохая идея; почти в каждом случае Вы хотите, чтобы Ваши исполняемые файлы имели те же полномочия, которые Вы имеете, так как Вы обычно хотите позволить исполняемому файлу сделать то, что он разработан, чтобы сделать в Ваши файлы. Например, при создании текстового редактора suid непривилегированному пользователю Вы не смогли бы отредактировать любые текстовые файлы...
Поместите все те числа в файл, каждого на его собственной строке, затем используйте grep
с -f
или --file=
переключатель:
grep -f filewithcodestosearchfor filetosearchin
Вы попытались использовать --mmap
флаг?
От человека:
--mmap If possible, use the mmap(2) system call to read input, instead of the default read(2) system call. In some situations, --mmap yields better performance. However, --mmap can cause undefined behavior (including core dumps) if an input file shrinks while grep is operating, or if an I/O error occurs.
Никакая потребность поместить их в файл, можно сделать:
grep -F '342163477
405760044
149007683
322391022
77409125
195978682
358463993
397650460
171780277
336063797
397650502
357636118
168490006' file
также, который является так же, как портативный/стандартный (как использование grep -Ff
, \|
в grep
BREs не является стандартным/портативным).
Кроме того, каков реальный вопрос? Вы хотите получить строки, которые содержат те числа или знать, какое из тех чисел появляется в файле? Файл отсортирован? Есть ли одно число на строку в файле?...
Как poige упоминания в комментарии к другому ответу, использовать grep -F
/fgrep
если Вы можете. Это рассматривает любые regex символы как литералы. Можно все еще получить эффект чередования путем объединения этого с -f file
опция и помещение Ваших шаблонов в файле, одного шаблона к строке.
При необходимости в шаблонах для включения regex, то попытайтесь ограничить себя классиком ДО синтаксис и использование grep -E
/egrep
. Классик ДО синтаксис не включает обратные ссылки, таким образом, никакие шаблоны формы ...(pat)...\1...
Потенциально это может использовать DFA, чтобы выполнить соответствие и быть более эффективным. Но это зависит от Вашей egrep реализации. Больше обсуждения этого здесь. Обратите внимание, что некоторые egrep реализации как Гну примут шаблоны с обратными ссылками; но при соответствии тем шаблонам здесь не будет, конечно, присутствовать преимущество эффективности, упомянутое.
Я упоминаю egrep
оптимизация для теоретического интереса, и потому что это стоило бы протестировать, чтобы видеть, помогает ли это в Вашем надлежащем использовании. Я предположил бы, что, поскольку manatwork говорит, grep механизм Гну лучше в выяснении, как оптимизировать, чем Вы.
--fixed-strings
иначе-F
иначеfgrep
– poige 23.10.2012, 12:31-F
(который не упоминается в этом ответе), и не от-f
, право? – Marco 23.10.2012, 12:36-f
должен избежать начального намерения Jasper's использовать несколькоgrep
вызовы, каждый с подмножеством списка кода.grep
, особенно GNUgrep
, сильно в оптимизации, лучше, чтобы просто позволить ему работать вместо того, чтобы кормить его с ложечки. Конечно, @poige-F
все еще улучшается много. pastebin.com/P8tTEmie – manatwork 23.10.2012, 13:06