2013-12-03 3 views
1

У меня есть каталог с большим количеством субдисков, содержащих 1 + миллион xml-файлов. Я бы хотел найти файлы xml с определенным элементом в нем. Это может быть сделано grep. Я хотел бы запустить его параллельно, поэтому я придумал следующее на основе параллельного руководства.gnu parallel и grep 'no такой файл или каталог'

find . -type f | parallel -j 30 grep -roPlHn "<ce:abstract.*ce:figure.*abstract>" {} 

Но по какой-то причине этого не работает, и он возвращает

/bin/sh: ce:abstract.*ce:figure.*abstract: No such file or directory 

Что я делаю неправильно?

Благодаря

ответ

2

Вы должны избежать «>»

... grep "<ce:abstract.*ce:figure.*abstract\>" ... 
+0

Спасибо, это исправили проблему, всегда немного неясно, когда бежать или нет в трубе. – Thomas

+0

Я тоже! Я просто начинаю с небольшой строки поиска и продолжаю добавлять символы, пока он не перестанет работать !!! :-) –

+0

-q тоже будет работать. –

Смежные вопросы