4

ack で一致する行の長さを制限する方法はありますか? たとえば、圧縮された JavaScript ファイルに ack が一致する場合、出力される行は非常に大きくなる可能性があります。強調表示された一致を引き続き表示したいのですが、理想的には、一致の前後に楕円でカットされた行があります: "... stuff match stuff ...". ack docsに決定的なものは見当たりません。

のようなもので掘り下げてみました

ack pattern | awk '{print substr($0,1,200) }'

しかしawk、望ましくない色とフォーマットを取り除いているようです。また、私は試しました(ちょっと待ってください):

ack pattern | ack pattern

各行で再確認して切り刻むことができるかどうかを確認するために、同じフォーマットの問題があります。パイピングack出力はどうやら改行を削除しますか?

コメントに基づいて編集:

たぶん、これが欲しい主な理由を説明するのに役立つでしょう。私は ack.vim を使用して自分のプロジェクトを検索します。「cookie」などの単語を見つけるために、JavaScript ファイルを確認したいことがよくあります。コードでバージョン管理された jQuery およびその他の縮小ライブラリがあるため、ack の結果に表示されます。これらのファイルは縮小されているため、改行がほとんどなく、分割ウィンドウに巨大な行が表示されますが、これをスクロールする必要があります。私はその試合を気にすることはほとんどないので、そんなに多くのスペースを占めるのは面倒です. 縮小したファイル名を ackrc に追加して無視することもできますが、縮小したライブラリを追加するたびに新しいファイル名を追加する必要はありません。これについては、ack.vim リポジトリに未解決の問題があります。純粋にbash-fuでできるかどうか知りたいです。

4

3 に答える 3

4

あなたはできる:

  • -oオプションを使用してShow only the part of a line matching PATTERN
  • -lオプションを使用してOnly print filenames containing matches
于 2012-05-14T00:23:08.167 に答える
2

縮小された Javascript ファイルを無視することが本当に必要な場合は、ack をアップグレードしてください。ack 1.96 以降では、縮小された JavaScript ファイルは無視されます。

于 2012-06-05T17:16:43.270 に答える