1

Windows 7ラップトップにstrawberry-perlをインストールしました。

Windows でgreporを使用して単語のリストを検索したい。ackack を使用して基本的な検索を実行できましたが、単語のリストを に渡す方法がわかりません。そのため、単語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
4

1 に答える 1

1

つまり、「doll」が表示される場所と「house」が表示される場所をすべて検索したいと言っています。だからここにあなたがすることです。

まず、「doll」を含むすべてのファイルを見つけて、それらのリストを出力します。

ack -l doll

次に、そのファイルのリストで「house」という単語を検索します。

ack house $(ack -l doll)

または、それを実行できるシェル (つまり Windows) を実行していない場合は、次のようにすることができます。

ack -l doll | ack -x house

ack -x「STDINから検索するファイルのリストを取得してください」と言います。

于 2014-04-16T12:40:16.153 に答える