Каков синтаксис для передачи списка на подтверждение?

Я установил клубнику-perl на свой ноутбук с Windows 7.

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

Например, если я ищу «кукла» и «дом», у меня может быть кукла в строке 12, а дом — в строке 244.

Я пробовал что-то вроде этого ack "doll"|"house", но выдает следующую ошибку.

Expressions are only allowed as the first element of a pipeline.
At line:1 char:22
+ ack "doll" | "house" <<<<
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : ExpressionsMustBeFirstInPipeline

person abhi    schedule 07.03.2014    source источник


Ответы (1)


Итак, вы говорите, что хотите найти все файлы, в которых встречается слово «кукла» и слово «дом». Итак, вот что вы делаете.

Сначала найдите все файлы, содержащие слово «кукла», и распечатайте их список.

ack -l doll

Затем найдите в этом списке файлов слово «дом».

ack house $(ack -l doll)

Или, если вы не используете оболочку, которая позволяет вам это делать (например, Windows), вы можете сделать:

ack -l doll | ack -x house

ack -x говорит: «Возьмите список файлов для поиска из STDIN».

person Andy Lester    schedule 16.04.2014
comment
Спасибо, что нашли время ответить. Надеюсь, у меня все еще есть эта установка на рабочем столе. - person abhi; 16.04.2014