2014-03-07 23 views
1

我在我的windows 7筆記本電腦上安裝了strawberry-perl。將列表傳遞給ack的語法是什麼?

我想在窗口上使用grepack來搜索單詞列表。 我已經能夠使用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 

回答

1

所以你說你想要找到「娃娃」出現在哪裏以及「房子」出現在哪裏的所有文件。所以這就是你所做的。

首先,找到所有包含「娃娃」的文件,並打印出它們的列表。

ack -l doll 

然後搜索單詞「house」的文件列表。

ack house $(ack -l doll) 

或者,如果你不運行的外殼,可以讓你做到這一點(如Windows),你可以這樣做:

ack -l doll | ack -x house 

ack -x說:「拿文件的列表,從標準輸入搜索」。

+1

謝謝您花時間回覆。希望我仍然可以在桌面上安裝此設置。 – abhi

相關問題