2010-03-10 7 views
1

Я хочу все строки с assert_equal и без амазонки.xargs не работает

Я пробовал следовать, но он не работает.

ack assert_equal | xargs ack -v amazon 
+0

Что такое * "ack" *? – DigitalRoss

+0

@ DigitalRoss, ack - утилита поиска и grep. см. также http://betterthangrep.com/ –

+1

Это, вероятно, должно быть перенесено на суперпользователя. – jdizzle

ответ

4

Вам не нужно xargs:

ack assert_equal | ack -v amazon 
1

Там, кажется, несколько проблем с командой. В первой части:

извед assert_equal

вы не обеспечивают имя файла, так ack не имеет никакого отношения к процессу. Во второй части:

xargs извед -v амазонка

вы используете xargs, чтобы обеспечить результаты от первоначального ack в качестве аргументов командной строки на второй ack, который, вероятно, не то, что вы предназначена. ack уже предназначен для приема данных на стандартном входе, поэтому вам не нужно использовать xargs.

Вот заявление, которое должно работать лучше:

извед assert_equal имя_файла | извед -v амазонка

или, если вы получаете на выходе из другой команды, что-то вроде:

my_command | ack assert_equal | ack -v amazon

+0

ack assert_equal показывает тонны данных. Спасибо за ответ. –

+0

«ack», доступный с сайта bestthangrep.com (как уже упоминал Дейв Бахер выше), не будет возвращать какие-либо данные при запуске с одним аргументом (по крайней мере, на моей машине). Другая программа 'ack', конвертер кода Кандзи, выводит любой текстовый файл, предоставленный как есть, но он не принимает аргумент -v, поэтому я предполагаю, что это не так. Есть ли третья 'ack', которую вы могли бы использовать? –

+0

ack не нуждается в имени файла для поиска. Для этого нужен шаблон поиска. Предполагается, что он хочет искать все дерево вниз, начиная с текущего каталога. –

0

ack не является стандартным инструментом в * nix. так как у вас это есть, все в порядке. Но если вы на системе Nix *, которая не имеет его, вот как вы можете это сделать

awk '/assert_equal/&&!/amazon/' file 
0

этот фрагмент должен дать вам представление о том, что вам нужно сделать. Магия находится в опции -print0. Не прямое решение; я чувствую себя ленивым.

ack -f --print0 --php -G 'scripts' --invert-file-match|xargs -0 ls -l 
Смежные вопросы