これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド ack-grepp です。
プログラム:
NAME
ack - grep のようなテキストファインダー
SYNOPSIS
ack [オプション] パターン [ファイル...]
ack -f [オプション] [ディレクトリ...]
DESCRIPTION
Ack は、 grep プログラマー向け。
Ack は、指定された入力 FILE (ファイルが指定されていない場合は標準入力、またはファイルが指定されていない場合は標準入力) を検索します。
name - が指定されている) は、指定された PATTERN に一致する行を含みます。 デフォルトでは、確認
一致する行を印刷します。
PATTERN は Perl の正規表現です。 Perl の正規表現は一般的に次の場所にあります。
他のプログラミング言語ですが、動作の詳細についてはお問い合わせください
<http://perldoc.perl.org/perlreref.html|perlreref>. 通常の使い方がわからない場合
表現だけど学びに興味のある方はご相談ください
<http://perldoc.perl.org/perlretut.html|perlretut>. ack を使用する必要がない、または使用したくない場合
正規表現については、「-Q」/「--literal」オプションを参照してください。
Ack は、実際に検索せずに、検索されるファイルをリストすることもできます。
ack のファイル タイプ フィルタリング機能を利用します。
FILE SELECTION
コマンドラインまたは
「-x」オプション、 ACK 検索するファイルを選択するサブディレクトリを詳しく調べます。
ACK 検索するファイルについてインテリジェントです。 に基づいて、特定のファイルの種類について認識しています。
ファイルの拡張子と、場合によってはファイルの内容の両方で。 これらは
選択は - タイプ オプションを選択します。
ファイルを選択しなくても、 ACK 明示的に指定されていない通常のファイルを検索します
によって除外される --ignore-dir & --ignore-ファイル に存在するオプション ACKRC ファイルまたは
コマンドライン。
デフォルトのオプションは、 ACK 特定のファイルとディレクトリを無視します。 これらには以下が含まれます:
・バックアップファイル:ファイルマッチング #*# またはで終わる ~.
· コアダンプ: 一致するファイル コア。\d+
· バージョン管理ディレクトリ .svn & .git.
ラン ACK 「--dump」オプションを使用して、どの設定が設定されているかを確認します。
しかしながら、 ACK タイプに関係なく、コマンドラインで指定されたファイルを常に検索します。 もしも
あなたが言う ACK コアダンプを検索するには、コアダンプを検索します。
DIRECTORY SELECTION
ACK 指定された開始ディレクトリのディレクトリ ツリーをたどります。 いいえ
ディレクトリが指定されている場合、現在の作業ディレクトリが使用されます。 ただし、無視します
多くのバージョン管理システムで使用されるシャドウ ディレクトリ、およびビルド ディレクトリ
Perl MakeMaker システムで使用されます。 このリストからディレクトリを追加または削除できます
--[いいえ]無視ディレクトリ オプション。 複数のディレクトリを追加/削除するためにオプションを繰り返すことができます
無視リストから。
検索されないディレクトリの完全なリストについては、「ack --dump」を実行してください。
WHEN に USE GREP
ACK トランプ grep 日常のツールとして 99% の時間、しかし投げないでください。 grep 離れて、なぜなら
まだ必要な場合があります。
たとえば、巨大なファイルを検索して、次のように表現できる正規表現を探します。 grep
構文はより速くなるはずです grep.
スクリプトまたは親プログラムが使用する場合 grep 「--quiet」または「--silent」または IO で exit 2 が必要
エラー、使用 grep.
OPTIONS
--ackrc
他のすべてのファイルの後にロードする ackrc ファイルを指定します。 「ACKRC LOCATION SEMANTICS」を参照してください。
-A NUM, --after-context =NUM
印刷物 NUM 一致した行の後の後続コンテキストの行。
-B NUM, --before-context =NUM
印刷物 NUM 一致する行の前の先頭のコンテキストの行。
--[いいえ]休憩
異なるファイルからの結果の間にブレークを出力します。 使用時のデフォルトでオン
インタラクティブに。
-C [NUM], --コンテキスト[=NUM]
印刷物 NUM 一致する行の周囲のコンテキストの行 (デフォルトは 2)。
-c, - カウント
通常の出力を抑制します。 代わりに、入力ファイルごとに一致する行の数を出力します。
If -l 行を含む各ファイルの行数のみが表示されます
マッチング。 それなし -l、一部の行数がゼロになる場合があります。
と組み合わせる場合 -h (--no-ファイル名) ack は合計カウントを XNUMX つだけ出力します。
-[いいえ]色, --[いいえ]色
- 色 一致するテキストを強調表示します。 --色なし 色を抑えます。 これは
出力がリダイレクトされない限り、デフォルト。
Windows では、Win32::Console::ANSI モジュールが有効でない限り、このオプションはデフォルトでオフになっています。
インストールされているか、「ACK_PAGER_COLOR」環境変数が使用されています。
--カラーファイル名=カラー
ファイル名に使用する色を設定します。
--色合わせ=カラー
マッチに使用する色を設定します。
--color-lineno=カラー
行番号に使用する色を設定します。
--[いいえ]列
最初に一致した列番号を表示します。 これは、
指定された位置にカーソルを置きます。
--create-ackrc
デフォルトの ack オプションを標準出力にダンプします。 したいときに便利です。
デフォルトをカスタマイズします。
- ごみ
ロードされたオプションのリストとそれらがどこから来たのかを標準出力に書き込みます。 ハンディ
デバッグ用。
--[いいえ]env
--noenv すべての環境処理を無効にします。 いいえ .ackrc 読み取られ、すべての環境
変数は無視されます。 デフォルトでは、 ACK 考慮する .ackrc および設定
環境。
- 流す
- 流す 出力をすぐにフラッシュします。 ack が実行されていない限り、これはデフォルトでオフになっています
対話的に (出力がパイプまたはファイルに送られるとき)。
-f 実際に検索を行わずに、検索されるファイルのみを印刷します。
PATTERN は指定しないでください。指定しないと、検索するパスとして使用されます。
--files-from=FILE
検索するファイルのリストは、 FILE. ファイルのリストは
改行で区切られています。 もしも FILE "-" の場合、リストは標準入力から読み込まれます。
--[いいえ]フィルター
パイプを介して入力を受け取っているかのように ack を動作させます。
--[いいえ]フォロー
開始ファイルまたはディレクトリを除いて、シンボリックリンクをたどるか、たどらないか
コマンドラインで指定されました。
デフォルトではオフになっています。
-g パターン
相対パス + ファイル名が一致するファイルを印刷する パターン。 このオプションは
と組み合わせること - 色 一致を見つけやすくするため。
--[いいえ]グループ
- グループ グループはファイル名で一致します。 これは、対話的に使用する場合のデフォルトです。
--グループなし grep のように、XNUMX 行に XNUMX つの結果を出力します。 これは、出力が
リダイレクトされました。
-H, --with-ファイル名
各一致のファイル名を出力します。 単一の検索を行わない限り、これがデフォルトです。
明示的に指定されたファイル。
-h, --no-ファイル名
複数のファイルが検索される場合、出力でのファイル名の接頭辞の付加を抑制します。
--[いいえ]見出し
各ファイルの結果の上にファイル名の見出しを出力します。 これは使用時のデフォルトです
インタラクティブに。
- 助けて, -?
短いヘルプ ステートメントを出力します。
--ヘルプの種類, --help=タイプ
すべての既知のタイプを出力します。
-i, --大文字と小文字を区別しない
PATTERN の大文字と小文字の区別を無視する
--ignore-ack-defaults
ack で提供されるデフォルトの定義を完全に無視するように ack に指示します。 これは
との組み合わせで有用 --create-ackrc あなたの場合 本当に ackをカスタマイズしたい。
--[no]ignore-dir=ディレクトリ名, --[いいえ]無視ディレクトリ=ディレクトリ名
ディレクトリを無視します (CVS、.svn などは無視されるため)。 無視するために複数回使用できます
複数のディレクトリ。 たとえば、石工のユーザーは含めることができます --ignore-dir=データ.
--noignore-dir オプションにより、ユーザーは通常はディレクトリを検索できます
無視されます(おそらく内容を調査するため) .svn/小道具 ディレクトリ)。
ディレクトリ名 常に単純なディレクトリ名でなければなりません。 次のようなネストされたディレクトリ foo / bar
サポートされていません。 指定する必要があります --ignore-dir=foo そして、からのファイルはありません
コマンドで明示的に指定されていない限り、どの foo ディレクトリも ack によって考慮されます。
ライン。
--ignore-file=フィルタータイプ:Filterargs
一致するファイルを無視 フィルタータイプ:Filterargs. フィルタは以下と同じように指定されます
「独自のタイプの定義」に見られるようなファイル タイプ フィルタ。
-k, -- 既知のタイプ
選択したファイルを、ack が認識しているタイプのものに制限します。 これは、
ack 1 にあるデフォルトの動作。
--lines =NUM
印刷ラインのみ NUM 各ファイルの。 複数の行を複数指定できます -行
オプションまたはカンマ区切りのリスト (--lines=3,5,7、XNUMX、XNUMX). --lines=4-7 も機能します。 の
コマンドで指定された順序に関係なく、行は常に昇順で出力されます
ライン。
-l, --一致するファイル
一致するテキストではなく、一致するファイルのファイル名のみを出力します。
-L, --一致しないファイル
ファイルのファイル名のみを印刷します NOT 一致しています。
- マッチ パターン
特定します パターン 明示的に。 これは、正規表現を次のように置きたくない場合に役立ちます。
たとえば、同じファイル セットに対して複数の検索を実行する場合などです。
# 指定したファイルから foo と bar を検索
ack file1 t/file* --match foo
ack file1 t/file* --マッチバー
-m =NUM, --max-count =NUM
後にファイルの読み取りを停止します NUM 一致します。
- 男
このマニュアルページを印刷します。
-n, --再帰なし
サブディレクトリに降りることはありません。
-o 各行の PATTERN に一致する部分のみを表示します (テキストの強調表示をオフにします)
--output =式
の評価を出力する 式 行ごとに (テキストの強調表示をオフにします) If PATTERN
複数回一致する場合、重複しない一致ごとに行が出力されます。 多くのための
詳細については、「例」セクションを参照してください。 - 出力".
--ページャー=プログラム, --nopager
- ページャ ack の出力を プログラム. これは、
「ACK_PAGER」および「ACK_PAGER_COLOR」環境変数。
--pager を使用すると、
コマンドラインで行います。
--nopager の設定をキャンセルします ~/.ackrc、「ACK_PAGER」または「ACK_PAGER_COLOR」。 いいえ
出力はページャーを介して送信されます。
--パススルー
式に一致するかどうかに関係なく、すべての行を出力します。 ハイライトは引き続き
ただし、機能するため、全体を表示しながら一致を強調表示するために使用できます
次のようなファイル:
# ログ ファイルを見て、特定の IP アドレスを強調表示します
$ テール -f ~/access.log | | ack --パススルー 123.45.67.89
--print0
-f、-g、-l、または -c (ファイル名出力) と組み合わせてのみ機能します。 ファイル名は
通常の改行の代わりにヌルバイトで区切られた出力。 こんなときに役立ちます
空白を含むファイル名を扱う。
# html タイプのすべてのファイルを削除
ack -f --html --print0 | xargs -0 rm -f
-Q, - リテラル
PATTERN 内のすべてのメタ文字を引用符で囲みます。これはリテラルとして扱われます。
-r, -R, -再帰
サブディレクトリに再帰します。 これはデフォルトであり、互換性のためにここにあるだけです
grep. 回しにも使えます --再帰なし オフ。
-s 存在しない、または読み取れないファイルに関するエラー メッセージを抑制します。 これはから取られます
fgrep。
--[いいえ]スマートケース, --スマートケースなし
PATTERN に大文字が含まれていない場合、検索文字列で大文字と小文字を区別しません。 これは
vim の「スマートケース」に似ています。 このオプションはデフォルトでオフになっており、「-i」が指定されている場合は無視されます
指定。
-i 常にこのオプションをオーバーライドします。
--sort-ファイル
見つかったファイルを辞書順に並べ替えます。 ファイルのリストを
の実行間で決定論的であること ACK.
--show-types
ack が各ファイルに関連付けるファイルタイプを出力します。
で動作します -f & -g オプション。
--type=[いいえ]TYPE
検索に含める、または検索から除外するファイルの種類を指定します。 TYPE はファイルタイプです。
ような パール or XML. --type=perl として指定することもできます --perl, --type=noperl できる
として行われる --noperl.
ファイルが「foo」と「bar」の両方のタイプの場合、 --foo と --nobar を指定すると除外されます
これは、除外が包含よりも優先されるためです。
型指定は繰り返すことができ、一緒に ORed されます。
見る ACK --help=タイプ 有効なタイプのリストについては。
--type-add タイプ:フィルタ:フィルター引数
指定された FILTERARGS が指定された FILTER に適用されたファイルは、
(既存の) タイプ TYPE。 「独自の型の定義」も参照してください。
--タイプセット タイプ:フィルタ:フィルター引数
指定された FILTERARGS が指定された FILTER に適用されたファイルは、
タイプタイプ。 これは、タイプ TYPE の既存の定義を置き換えます。 「定義
あなた自身のタイプ」。
--type-del タイプ
TYPE に関連付けられたフィルターは Ack から削除され、考慮されなくなります
検索用。
-v, --反転マッチ
一致を反転: 一致しない行を選択します
- バージョン
バージョンと著作権情報を表示します。
-w, --単語正規表現
PATTERN が完全な単語のみに一致するように強制します。 PATTERN は「\b」でラップされます
メタ文字。
-x の略語 --files-from=-; 検索するファイルのリストは標準から読み込まれます
ファイルごとに XNUMX 行で入力します。
-1 あらゆる種類の最初の一致を報告した後に停止します。 これは --最大カウント=1
or -m1、ファイルごとに XNUMX つの一致のみが表示されます。 また、 -1 と連携 -f & -gここで、
-m ではない。
--thpppt
非常に重要な Bill The Cat のロゴを表示します。 の正確なスペルに注意してください
--thpppppt 重要な事ではない。 正規表現に対してチェックされます。
- バー
トラップについて提督に確認してください。
--キャシー
チョコレート、チョコレート、チョコレート!
ザ .ackrc FILE
.ackrc ファイルには、コマンド ラインの先頭に追加されるコマンド ライン オプションが含まれています。
処理前。 複数のオプションが複数の行に存在する場合があります。 # で始まる行
は無視されます。 あ .ackrc このように見えるかもしれません:
# 常にファイルをソートする
--sort-ファイル
# 別のプログラムにパイプする場合でも、常に色を付けます
- 色
# "less -r" をページャーとして使用
--pager=less -r
スペースを含む引数は引用符で囲む必要がないことに注意してください。
シェルによって解釈されます。 基本的にそれぞれ ライン セクションに .ackrc ファイルはXNUMXつとして解釈されます
@ARGV の要素。
ACK いくつかの場所で探します .ackrc ファイル; 検索プロセスの詳細については、
「ACKRCロケーションセマンティクス」。 次の場合、これらのファイルは考慮されません。 --noenv で指定されています
コマンドライン。
定義 自分の
ack を使用すると、定義済みの型に加えて独自の型を定義できます。 これで完了です
に最適なコマンド ライン オプションを使用して、 .ackrc ファイル - その必要はありません
タイプを何度も定義します。 次の例では、オプションは常に
簡単にコピー & ペーストできるように、XNUMX つのコマンド ラインに表示されます。
ACK --perl foo すべての perl ファイルで foo を検索します。 ACK --help=タイプ あなたに言う、そのperl
ファイルは、.pl、.pm、.pod、または .t で終わるファイルです。 では、.xs を含めたい場合はどうでしょうか。
--perl ファイルを検索するときのファイルも同様ですか? ACK --type-add perl:ext:xs --perl foo ありません
これはあなたのためです。 --type-add 既存の型に追加の拡張子を追加します。
新しい型を定義したい場合、または既存の型を完全に再定義したい場合は、
--タイプセット. ACK --タイプセット エッフェル:ext:e,エッフェル タイプを定義します エッフェル ファイルを含める
拡張子は .e または .eiffel です。 そのため、単語を含むすべての eiffel ファイルを検索するには
ベルトラン使用 ACK --タイプセット エッフェル:ext:e,エッフェル --エッフェル バートランド. 通常どおり、次のこともできます。
書きます --type=エッフェル --エッフェル. 否定も効くので --ノエッフェル すべて除外
検索からの eiffel ファイル。 再定義も機能します: ACK --タイプセット cc:ext:c,h & .xs ファイル
タイプに属しなくなりました cc.
で独自の型を定義する場合 .ackrc 次のファイルを使用する必要があります。
--type-set=eiffel:ext:e,eiffel
または別の行に書く
--タイプセット
エッフェル:ext:e,エッフェル
以下は NOT で働く .ackrc ファイル:
--type-set eiffel:ext:e,eiffel
現在定義されているすべてのタイプを表示するには、次を使用します。 --ヘルプの種類、例えば ACK --タイプセット
バックアップ:ext:bak --type-add パール:拡張子:パール --ヘルプの種類
拡張子に基づくフィルタリング (ack 1.x の許可など) に加えて、ack 2 は以下を提供します。
追加のフィルター タイプ。 一般的な構文は次のとおりです。 --タイプセット タイプ:フィルター:フィルターargs;
フィルター引数 の値に依存します フィルタ.
次のとおりです。ファイル名
is フィルタはターゲット ファイル名と正確に一致します。 引数を XNUMX つだけ取ります。
一致するファイルの名前。
例:
--type-set make:is:Makefile
内線:EXTENSION[,拡張2[、...]]
EXT フィルターは、ターゲット ファイルの拡張子を拡張子のリストと照合します。 いいえ
拡張子には先頭のドットが必要です。
例:
--type-set perl:ext:pl,pm,t
マッチ:パターン
match フィルターは、ターゲット ファイル名を正規表現と照合します。 レギュラー
式は検索で大文字と小文字を区別しません。
例:
--type-set make:match:/(gnu)?makefile/
ファーストラインマッチ:パターン
ファーストラインマッチ ターゲット ファイルの最初の行を正規表現と照合します。
いいね match 、正規表現は大文字と小文字を区別しません。
例:
--type-add perl:firstlinematch:/perl/
今後、さらに多くのフィルタ タイプが利用可能になる可能性があります。
ENVIRONMENT 変数
一般的に使用される ack オプションの場合、環境変数を使用すると作業がはるかに簡単になります。 これらは
次の場合、変数は無視されます --noenv コマンドラインで指定します。
ACKRC
ユーザーの場所を指定します .ackrc ファイル。 このファイルが存在しない場合は、 ACK
デフォルトの場所に見えます。
ACK_OPTIONS
この変数は、明示的なオプションの前に配置されるデフォルト オプションを指定します。
コマンドラインで。
ACK_COLOR_FILENAME
印刷時のファイル名の色を指定します - グループ モード。 デフォルトでは、
それは「ボールドグリーン」です。
認識される属性は、clear、reset、dark、bold、underline、underscore、blink、
反転、隠し黒、赤、緑、黄、青、マゼンタ、on_black、on_red、
on_green、on_yellow、on_blue、on_magenta、on_cyan、および on_white。 ケースはありません
重要。 下線と下線は同等であり、クリアとリセットも同様です。 の
color だけで前景色を設定し、on_color で背景色を設定します。
このオプションは、 --カラーファイル名.
ACK_COLOR_MATCH
印刷時に一致するテキストの色を指定します - 色 モード。 デフォルトでは、
「black on_yellow」です。
このオプションは、 --色合わせ.
見る ACK_COLOR_FILENAME カラー仕様について。
ACK_COLOR_LINENO
印刷時の行番号の色を指定します - 色 モード。 デフォルトでは、
「大胆な黄色」。
このオプションは、 --color-lineno.
見る ACK_COLOR_FILENAME カラー仕様について。
ACK_PAGER
「more」、「less」、「most」など、ack が送信するページャー プログラムを指定します。
その出力。
"ACK_PAGER" を使用すると、
ただし、Windows の ack では、"ACK_PAGER" がないと想定されます。
サポートカラー。
両方が指定されている場合、「ACK_PAGER_COLOR」は「ACK_PAGER」をオーバーライドします。
ACK_PAGER_COLOR
ANSI カラー シーケンスを理解するページャー プログラムを指定します。 使用する
"ACK_PAGER_COLOR" は、
コマンドラインで行います。
Windows を使用していない場合は、「ACK_PAGER_COLOR」を使用する必要はありません。
AVAILABLE COLORS
ACK Perl の Term::ANSIColor モジュールで利用可能な色を使用します。
以下のリストされた値。 これらの値を使用する場合、大文字と小文字は区別されないことに注意してください。
フォアグラウンド 色
ブラック レッド グリーン イエロー ブルー マゼンタ シアン ホワイト
明るい_黒 明るい_赤 明るい_緑 明るい_黄色
ブライト_ブルー ブライト_マゼンタ ブライト_シアン ブライト_ホワイト
経歴 色
オン_ブラック オン_レッド オン_グリーン オン_イエロー
オン_ブルー オン_マゼンタ オン_シアン オン_ホワイト
on_bright_black on_bright_red on_bright_green on_bright_ yellow
オンブライトブルー オンブライトマゼンタ オンブライトシアン オンブライトホワイト
ACK & その他 ツール
活力 統合
ACK Vim テキスト エディタと簡単に統合できます。 これをあなたの .vimrc 使用する ACK を取得する必要がある者
of grep:
set grepprg=ack\ -k
この例では、「-k」を使用して、ack が認識しているタイプのファイルのみを検索しますが、
他のデフォルト フラグを使用できます。 今、あなたはで検索することができます ACK 簡単にステップスルー
Vimの結果:
:grep ダンパー perllib
Miles Sterett は Vim プラグインを作成しました ACK これにより、代わりに ":Ack" を使用できます。
":grep" など、いくつかの高度な機能が含まれています。
Emacs 統合
フィル・ジャクソンがまとめた アクエル 「単純なコンパイルモードを提供する拡張機能...
メジャーモードに基づいて、検索するファイルを推測する機能があります。」
<http://www.shellarchive.co.uk/content/emacs.html>
TextMate 統合
Pedro Melo は TextMate ユーザーで、次のように書いています。
組み込みのプロジェクト内検索は、大規模なプロジェクトには適していません。 だから私は TextMate コマンドをハッキングしました
find + grep を使用して ack を使用していました。 結果は ack を使用してプロジェクト内を検索し、あなたは
ここで見つけることができます:
<http://www.simplicidade.org/notes/archives/2008/03/search_in_proje.html>"
シェル(Shell) & 返品 Code
との互換性を高めるために grep, ACK 通常の使用では、シェルの戻りコードまたは終了コードを返します
何かが見つかった場合のみ 0 になり、一致が見つからない場合は 1 になります。
(シェルの終了コード 1 は、perl では "system" またはバッククォートを使用した "$?=256" です。)
grep エラーのコード 2 は使用されません。
「-f」または「-g」が指定されている場合、少なくとも 0 つのファイルが見つかった場合は XNUMX が返されます。 いいえ
ファイルが見つかった場合、1 が返されます。
デバッグ ACK 問題
ack で予期しない出力が得られた場合は、いくつかの簡単な手順から始めてください。
--noenv
環境変数と .ackrc 予期しないことをしている可能性があります。
あなたが指定したのを忘れました。 使用する --noenv あなたの環境を無視し、 .ackrc.
-f 〜へ 何 ファイル 持ってる き 選択
アクの -f もともとデバッグツールとして追加されました。 ack が一致するものを見つけられない場合
見つけるべきだと思う、実行する ACK -f どのファイルが選択されているかを確認します。 追加することもできます
選択した各ファイルのタイプを表示する「--show-types」オプション。
- ごみ
これは、ロードされた ackrc ファイルとそれらからロードされたオプションをリストします。 だから
たとえば、検索されないディレクトリやファイルタイプが存在するディレクトリのリストを見つけることができます
定義された。
みんなが読んでいる
.ackrc ファイルにソフトウェアを指定する必要があります。
.ackrc ほとんどの場合使用するが使用したくないすべてのオプションを配置する場所です。
覚えて。 --type-add と --type-set のすべての定義をその中に入れます。 もし良かったら
--smart-case もそこに設定します。 そこに --sort-files も設定しました。
-f for ワーキング ビッグ コードセット
Ack はファイルを検索するだけではありません。 「ack -f --perl」は、すべての Perl ファイルのリストを作成します
に送信するのに理想的なツリーで xargs 例えば:
# ツリー内のすべての Perl ファイルで、すべての「これ」を「あれ」に変更します。
ack -f --perl | xargs perl -p -i -e's/this/that/g'
または必要に応じて:
perl -p -i -e's/this/that/g' $(ack -f --perl)
-Q いつ in 疑い 約 メタキャラクター
正規表現のメタ文字を使用して何かを検索している場合、ほとんどの場合、
ファイル名または IP アドレスにピリオドを付ける場合は、-Q を追加して、すべての
バックスラッシュ。 詳細については、次の例を参照してください...
ACK 〜へ watch ログ ファイル
これは先日、Web サイトの訪問者の問題点を見つけるために使用したものです。 ユーザーが持っていた
読み込みの問題 厄介な.gifということで、アクセスログを取ってackでXNUMX回スキャンしてみました。
ack -Q aa.bb.cc.dd /path/to/access.log | ack -Q -B5 厄介な.gif
最初の ack は、指定された IP の Apache ログ内の行のみを検出します。 XNUMX番目に見つけた
私の厄介なGIFの一致、およびそれぞれのログからの前のXNUMX行を示しています
場合。
例 of - 出力
次の変数は、拡張文字列で役立ちます。
$& PATTERN に一致する文字列全体。
$1、$2、...
PATTERN の 1st、2nd ... 括弧で囲まれたグループの内容。
「$`」
試合前の文字列。
「$」
マッチ後の文字列。
詳細およびその他の変数については、
<http://perldoc.perl.org/perlvar.html#正規表現に関連する変数|perlvar>.
この例は、特定のパターンの周囲にテキストを追加する方法を示しています (この場合は _ を追加します)。
「e」で単語を囲む)
ack2.pl "\w*e\w*" quick.txt --output="$`_$&_$'"
_The_速い茶色のキツネが怠け者の犬を飛び越えます
素早い茶色のキツネは怠け者の犬を飛び越えます
素早い茶色のキツネは怠け者の犬を飛び越えます
これは、レギュラー内で ( ) を使用して一致の特定の部分を選択する方法を示しています
式です。
ack '=head(\d+)\s+(.*)' --output=' $1 : $2'
入力ファイルに「=head1 NAME」が含まれています
出力 "1 : 名前"
シェアする 知識
ack-users メーリング リストに参加してください。 ヒントを送ってください。ここに追加することがあります。
よくある質問
なぜ ない ACK 発見 a match in (いくつか ファイル)?
おそらく ack が認識しないタイプだからです。 ack の検索動作は
ファイルタイプによって駆動されます。 If ACK しない 知っています 何 種類 of file it は、 ACK 無視する ファイルにソフトウェアを指定する必要があります。
「-f」スイッチを使用して、ack が検索するファイルのリストを表示します。 を使用できます。
「--show-types」スイッチは、ack が各ファイルを認識しているタイプを表示します。
しない it be 素晴らしい if ACK した サーチ & 交換?
いいえ、ack は常に読み取り専用です。 Perlには、検索と置換を行うための完全に優れた方法があります
「-i」、「-p」、および「-n」スイッチを使用して、ファイル。
確かに ack を使用して、更新するファイルを選択できます。 たとえば、すべてを変更するには
すべての PHP ファイルで "foo" を "bar" に変更するには、Unix シェルからこれを行うことができます。
$ perl -i -p -e's/foo/bar/g' $(ack -f --php)
できる I make ACK 認識する XYZ ファイル?
はい! 「独自の型の定義」を参照してください。 そう思うなら ACK タイプを認識する必要があります
デフォルトでは、「機能強化」を参照してください。
そこにある 既に a プログラム/パッケージ 呼ばれます ああ。
はい、知っています。
なぜ is it 呼ばれます ACK if それはだ 呼ばれます ack-grep?
プログラムの名前は「ack」です。 一部のパッケージャーは、作成時に「ack-grep」と呼んでいます
パッケージは、「ack」と呼ばれる何も関係のないパッケージが既に存在するためです
このアックで。
という名前のシンボリックリンクを作成することをお勧めします ACK を指す ack-grep 重要な要素の XNUMX つであるため、
ack の利点は、名前が短くて入力しやすいことです。
これを行うには、これを実行します sudo またはルートとして:
ln -s /usr/bin/ack-grep /usr/bin/ack
または、シェル エイリアスを使用することもできます。
# バッシュ/zsh
エイリアス ack=ack-grep
#csh
エイリアス ack ack-grep
この試験は ありません ACK 平均?
何もない。 入力しやすく、発音しやすい名前が欲しかった
音節。
できる I do マルチライン 正規表現?
いいえ、ack は複数行に一致する正規表現をサポートしていません。 そのためには、
一度にファイル全体を読み込みます。
マッチの近くの線を見たい場合は、「--A」、「--B」、「--C」スイッチを使用してください
コンテキストを表示しています。
なぜ is ACK 占い me I 持ってる an 無効 オプション いつ 検索 for 「+ふー」?
ack は、「+」または「-」で始まるコマンド ライン オプションをオプションとして扱います。 よろしければ
これらを検索するには、検索語の前に「--」を付けるか、「--match」オプションを使用できます。
(ただし、「+」は正規表現のメタ文字であることを忘れないでください!)
なぜ ありません 「いいえ '.{40000,}'" 失敗します? そうではない それ a 有効な 正規表現?
Perl 言語では、反復修飾子が 32K に制限されています。 「.{32767}」で検索できます。
".{32768}" ではありません。
ACKRC ロケーション セマンティクス
Ack は、多くのソースから構成をロードできます。 このリストは、ソース Ack を指定します
構成を探します。 見つかったそれぞれが、ここで指定された順序でロードされます。
それぞれが、それより前のソースのいずれかに設定されたオプションをオーバーライドします。 (たとえば、私が設定した場合
--sort-files をユーザー ackrc に、 --nosort-files をコマンド ラインに、コマンド ライン
が優先されます)
· デフォルトは App::Ack::ConfigDefaults からロードされます。 これは次を使用して省略できます。
「--ignore-ack-defaults」。
· グローバル ackrc
次に、グローバル ackrc からオプションがロードされます。 これは、「/etc/ackrc」にあります。
Unixライクなシステム。
Windows XP 以前では、ackrc は「C:\Documents and Settings\All」にあります。
ユーザー\アプリケーション データ\ackrc".
Windows Vista/7 では、グローバル ackrc は「C:\ProgramData」にあります。
「--noenv」オプションは、すべての ackrc ファイルが読み込まれないようにします。
· ユーザー ackrc
オプションは、ユーザーの ackrc から読み込まれます。 これは、「$HOME/.ackrc」にあります。
Unixライクなシステム。
Windows XP 以前では、ユーザーの ackrc は「C:\Documents and
Settings\$USER\Application Data\ackrc".
Windows Vista/7 では、ユーザーの ackrc は.
別のユーザー レベルの ackrc をロードする場合は、$ACKRC で指定できます。
環境変数。
「--noenv」オプションは、すべての ackrc ファイルが読み込まれないようにします。
· プロジェクト ackrc
オプションは、プロジェクト ackrc から読み込まれます。 プロジェクトackrcは最初のackrcです
「.ackrc」または「_ackrc」という名前のファイル。最初に現在のディレクトリを検索し、
次に親ディレクトリ、次に祖父母ディレクトリなど。これは省略できます
「--noenv」を使用。
· --ackrc
「--ackrc」オプションをコマンドラインに含めて、ackrc ファイルを指定することができます。
他のすべてをオーバーライドできます。 「--noenv」が存在する場合でも参照されます。
· ACK_OPTIONS
次に、環境変数「ACK_OPTIONS」からオプションがロードされます。 これはすることができます
「--noenv」で省略。
・ コマンドライン
オプションは、コマンド ラインから読み込まれます。
違い BETWEEN ACK 1.X そして ACK 2.X
ack 2 には多くの変更が加えられました。 ここにそれらのリストがあります。
全般的な CHANGES
· セレクターが指定されていない場合、ack 1.x はマップできるファイルのみを検索します。
ファイルタイプに。 対照的に、ack 2.x はすべての通常の非バイナリを検索します。
経由で明示的に無視されていないファイル --ignore-ファイル or --ignore-dir。 これは
の動作に似ています。 -a/--すべて ack 1.x のオプション。
· より柔軟なフィルター システムが追加され、より強力なファイル タイプを使用できるようになりました。
ユーザーによって作成されます。 詳細については、「独自の型を定義する」を参照してください。
· ack は複数の ackrc ファイルをロードするようになりました。 詳細については、「ACKRC LOCATION SEMANTICS」を参照してください。
· ack のデフォルトのフィルター定義は特別なものではありません。 あなたはackに完全に言うかもしれません
気に入らなければ無視してください。
削除されました OPTIONS
· デフォルトの検索動作が変更されたため、 -a/--すべて & -u/--無制限
オプションが削除されました。 加えて -k/--既知のタイプ オプションが追加されました
ack 1.x のデフォルトの検索動作で ack を動作させます。
・ -G オプションが削除されました。 コマンドラインの XNUMX つの正規表現は
紛らわしすぎると考えられています。 シミュレートする -Gの機能、新しい -x
ファイル名を ack のある呼び出しから別の呼び出しにパイプするオプション。
・ - バイナリ オプションは削除されました。
・ --スキップしました オプションは削除されました。
・ - テキスト オプションは削除されました。
・ --invert-file-match オプションが削除されました。 代わりに、使用することができます -v -g.
かわった OPTIONS
· 正規表現の動作を変更するオプション (-i, -w, -Q, -v) かもしれません
JOB -g.
ADDED OPTIONS
· --files-from ユーザーがファイル名のリストをファイル名のリストとして送信できるように追加されました
検索するファイル。
· -x 標準入力を介してファイル名のリストを受け入れるように ack に指示するために追加されました。 このリスト
検索に使用されるファイル名のリストです。
· -s ack に、存在しないか読み取れないというエラーメッセージを抑制するように指示するために追加されました
ファイル。
· --ignore-ディレクトリ & --noignore ディレクトリ のエイリアスとして追加されました --ignore-dir &
--noignore-dir 。
· --ignore-ファイル ユーザーが無視するファイルのパターンを指定できるように追加されました (例:
/.*~$/)。
· - ごみ ユーザーがどのオプションがどこに設定されているかを簡単に見つけられるようにするために追加されました。
· --create-ackrc ユーザーがに基づいてカスタムackrcファイルを作成できるように追加されました
デフォルト設定は ack によってロードされ、ユーザーがそれらのデフォルトを簡単に表示できるようにします。
· --type-del ファイルタイプの定義を選択的に削除するために追加されました。
· --ignore-ack-defaults ユーザーが ack のデフォルト オプションを無視できるように追加されました。
自分の好意。
· - バー ack ユーザーが Admiral Ackbar に相談できるように追加されました。
onworks.net サービスを使用してオンラインで ack-grepp を使用する