
だからgrep
私はMercurialを使ってログからいくつかのコンテンツを抽出し、それなしでawk
できることを確認するために使用しようとしませんでしたが、完全な最新の正規表現がサポートされていgrep
ないため失敗しました。egrep
これはgrepで発生します。
$ hg log <filename> | grep changeset
changeset: 3651:d23495ab1168
changeset: 2974:6aa71cb2c575
changeset: 2756:9dd7fb635678
changeset: 2532:d3ced9af4d6c
changeset: 2459:9d5f5553b851
changeset: 1835:4558836beed1
changeset: 1628:517d0239e830
changeset: 1486:114bce51254d
changeset: 1378:2b968e7fbd19
changeset: 1374:4e7772e48d00
これが私が望む出力です。しかし、より良い正規表現のサポートのためにack
aaaand ....を試してみましたが、何もしません。私は何を見逃していますか?いくつかの例を確認したところ、私がここでやっていることにはあまり違いはありません。
$ hg log <filename> | ack changeset
$
出力がありません。
私がこのツールを誤って理解したのではないでしょうか?egrep
また、十分なサポートを受けていません。ただ使用したい\s
:(
答え1
ackのドキュメントページでこれを見たのに役立ちますか?
--[no]filter Force ack to treat standard input as a pipe
(--filter) or tty (--nofilter)
答え2
入ろうとする
awk '/changeset/ {print}'
答え3
パーティーには遅すぎますが、ack v3.3.1パイプラインはうまくいきます。
$ git log | ack 'bar'
$ ack 'regex' log | ack 'bar'
複雑な正規表現を実行する必要がありますが、時間がかかり、1行で実行できないため、この問題に遭遇しました。
これが誰かに役立つことを願っています
答え4
ack
Debian ベースのディストリビューションにインストールされるデフォルトパッケージです。実行中にこのようなメッセージが表示された場合は、以下の手順をack -h
使用するか、従ってください。ack-grep
http://beyondgrep.com/install/存在するDebian 派生から ack-grep の名前を変更する
hg log <filename> | ack-grep changeset
ack-grepが正しくインストールされていることを確認してください。