これは、Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、MACOSオンラインエミュレーターなどの複数の無料オンラインワークステーションのXNUMXつを使用してOnWorks無料ホスティングプロバイダーで実行できるコマンドagrepです。
プログラム:
NAME
agrep-ファイルを検索して、文字列または正規表現を近似一致で検索します
機能
SYNOPSIS
同意する [ -#cdehiklnpstvwxBDGIS ] パターン [ -NS パターンファイル ] [ ファイル名...]
DESCRIPTION
同意する 入力を検索します ファイル名 (標準入力がデフォルトですが、下の警告を参照してください
制限)次のいずれかの文字列を含むレコードの場合 正確に or 約 抹茶
パターン。 レコードはデフォルトでは行ですが、-dを使用して別の方法で定義できます。
オプション(以下を参照)。 通常、見つかった各レコードは標準出力にコピーされます。
近似一致により、いくつかのエラーのあるパターンを含むレコードを見つけることができます
置換、挿入、および削除を含みます。 たとえば、Massechusetsは一致します
XNUMXつのエラー(XNUMXつの置換とXNUMXつの挿入)のあるマサチューセッツ。 ランニング 同意する -2
Massechusets fooは、最大2つのエラーを含む任意の文字列を含むfooのすべての行を出力します。
Massechusets。
同意する 任意のワイルドカード、パターンのセット、および
一般的に、正規表現。 以下のパターンを参照してください。 ほとんどのオプションをサポートしています
によってサポートされています grep ファミリーに加えてさらにいくつか(ただし、grepと100%互換性はありません)。
agrepで使用されるアルゴリズムの詳細については、Wu andManberの「FastText」を参照してください。
エラーのある検索」、テクニカルレポート#91-11、コンピュータサイエンス学科、
アリゾナ大学、1991年XNUMX月(cs.arizona.eduからanonymousftpで入手可能
agrep / agrep.ps.1)、およびWuとManber、「Agrep-高速近似パターン検索
ツール」、1992年XNUMX月のUSENIX会議に登場する(anonymousftpから入手可能)
agrep / agrep.ps.2のcs.arizona.edu)。
残りの部分と同様に grep 家族、キャラクター `$'、 `^', `∗'、 `[', `]', `^'、 `|',
`('、 `)'、 `!'、および `\'に含まれていると、予期しない結果が生じる可能性があります パターン、 これらのような
文字はシェルにとっても意味があります。 これらの問題を回避するには、常に
パターン引数全体を一重引用符で囲みます。つまり、「pattern」です。 ダブルは使用しないでください
引用符( ")。
日時 同意する 複数の入力ファイルに適用される場合、ファイルの名前が表示されます
パターンに一致する各行の前。 ファイル名は次の場合は表示されません
単一のファイルを処理するため、実際にファイル名を表示する場合は、 / dev / null as
リストのXNUMX番目のファイル。
OPTIONS
-# # エラーの最大数を指定する非負の整数(最大8)です
近似一致の検索で許可されます(デフォルトはゼロ)。 一般的に、それぞれ
挿入、削除、または置換はXNUMXつのエラーとしてカウントされます。 調整可能です
挿入、削除、および置換の相対コスト(-I-Dおよび-Sを参照)
オプション)。
-c 一致するレコードの数のみを表示します。
-d 'デリム'
定義する デリム XNUMXつのレコード間の区切り文字になります。 デフォルト値は「$」です。
つまり、レコードはデフォルトで行です。 デリム 最大8のサイズの文字列にすることができます
(^と$を使用する可能性があります)が、正規表現ではありません。 XNUMXつの間のテキスト
デリムの、最初の前に デリム、そして最後の後 デリム XNUMXつと見なされます
記録。 たとえば、-d '$$'は段落をレコードとして定義し、-d '^ From'は定義します
レコードとしてのメールメッセージ。 同意する 各レコードを個別に照合します。 このオプションは
現在、正規表現では機能しません。
-e パターン
シンプルと同じ パターン 引数ですが、 パターン `で始まります-'.
-f パターンファイル
パターンファイル (単純な)パターンのセットが含まれています。 出力はすべての行です
のパターンの少なくともXNUMXつに一致する パターンファイル。 現在、-fオプションは機能します
完全一致および単純なパターンの場合のみ(メタシンボルはすべて、
通常の文字); -c、-h、-i、-l、-s、-v、-w、および-xとのみ互換性があります
オプション。 サイズの制限については、制限を参照してください。
-h ファイル名を表示しません。
-i 大文字と小文字を区別しない検索—たとえば、「A」と「a」は同等と見なされます。
-k パターン内の記号はメタ文字として扱われません。 たとえば、agrep -k
'a(b | c)* d'fooは、fooでa(b | c)* dの出現を検出しますが、agrepは
'a(b | c)* d'fooは、正規表現に一致するfoo内のサブストリングを検索します
'a(b | c)* d'。
-l 一致するファイルのみをリストします。 このオプションは、を探すのに便利です
特定のパターンを含むファイル。 たとえば、「agrep -l'wonderful '*」は、
単語を含む現在のディレクトリ内のファイルの名前を一覧表示します
'素晴らしい'。
-n 印刷される各行には、ファイル内のレコード番号が接頭辞として付けられます。
-p パターンのスーパーシーケンスを含むテキスト内のレコードを検索します。 例えば、
同意する -p DCS foo 意志 match "デパートメント of パソコン 理科。"
-s 静かに作業します。つまり、エラーメッセージ以外は何も表示しません。 これは
エラーステータスを確認します。
-t 末尾からレコードを出力します デリム 次へ(そして含む) デリム。
これは、次のような場合に役立ちます デリム レコードの最後に来る必要があります。
-v 反転モード—次のようなレコードのみを表示します do パターンが含まれています。
-w パターンを単語として検索します。つまり、英数字以外の文字で囲みます。
非英数字 しなければなりません 試合を囲みます。 エラーとしてカウントすることはできません。
たとえば、 同意する -w -1台の車は車と一致しますが、キャラクターとは一致しません。
-x パターンは行全体と一致する必要があります。
-y -Bオプションとともに使用されます。 -yがオンの場合、agrepは常に最適な一致を出力します
プロンプトを出さずに。
-B ベストマッチモード。 -Bが指定されていて、完全に一致するものが見つからない場合、agrepは
最も近い一致(つまり、最小数の一致)まで検索を続けます
エラー)が見つかりました。その時点で、次のメッセージが表示されます。
一致にはx個のエラーが含まれ、y個の一致があり、それらを出力しますか? (y / n) "ベストマッチ
モードは、パイプライン入力などの標準入力ではサポートされていません。 -#、-c、
または-lオプションが指定されている場合、-Bオプションは無視されます。 一般的に、-Bは
-#より遅いですが、それほどではありません。
-Dk 削除のコストをに設定します k (k は正の整数です)。 このオプションはしません
現在、正規表現を使用しています。
-G 一致するファイルを出力します。
-Ik 挿入のコストをに設定します k (k は正の整数です)。 このオプションはしません
現在、正規表現を使用しています。
-Sk 代替のコストをに設定します k (k は正の整数です)。 このオプションは
現在、正規表現では機能しません。
パターン
同意する 単純な文字列、クラス付きの文字列など、さまざまなパターンをサポートします
文字、文字列のセット、ワイルドカード、および正規表現の。
弦
行頭の特殊記号 `^ 'を含む任意の文字シーケンス
行末は `$ '。 上記の特殊文字( `$'、 `^', `∗'、 `[',
`^'、 `|'、 `('、 `)'、 `!'、および `\')の前に `\'を付ける必要があります
通常の文字として一致します。 たとえば、\ ^ abc \\は文字列に対応します
^ abc \であるのに対し、^ abcは行頭の文字列abcに対応します。
クラス of 文字
[]内の文字のリスト(順番に)は、
リスト。 たとえば、[a-ho-z]は、aとhの間、またはoとzの間の任意の文字です。
[]内の記号 `^ 'はリストを補完します。 たとえば、[^ in]は任意の
文字 'i'から 'n'を除く文字セット内の文字。 したがって、記号 `^ '
XNUMXつの意味がありますが、これはegrepと一致しています。 記号 `。 ' (気にしないでください)
任意の記号を表します(改行記号を除く)。
ブーリアン 操作
同意する `and '操作`;'をサポートしますおよび `または '操作`、'ですが、
両方の組み合わせ。 たとえば、「fast; network」はすべてのレコードを検索します
両方の単語を含みます。
ワイルド カード
記号「#」は、ワイルドカードを示すために使用されます。 #ゼロまたは任意の数に一致
任意の文字。 たとえば、ex#eは例と一致します。 記号#は
egrepの。*と同等です。 実際、。*は有効であるため、これも機能します。
正規表現(以下を参照)。ただし、これが実際の正規表現の一部でない限り
式、#はより速く動作します。
組み合わせ of 正確な と 近似 マッチング
山かっこ<>内のパターンは、一致する場合でもテキストと正確に一致する必要があります
エラーがあります。 例えば、 icsは数学とXNUMXつのエラーで一致します
(最後のsをaに置き換えます)しかし、mathe 数学的に一致しません
許可するエラーの数は関係ありません。
レギュラー 表現
の正規表現の構文 同意する 一般的には
egrep。 和集合 `| '、クリーネ閉包` *'、および括弧()はすべて
サポートされています。 現在、「+」はサポートされていません。 正規表現は現在
約30文字に制限されています(通常はメタ文字を除く)。 いくつか
オプション(-d、-w、-f、-t、-x、-D、-I、-S)は、現在通常では機能しません
式。 '*'またはを使用する正規表現のエラーの最大数
'|' は4です。
例
agrep -2 -c ABCDEFG foo
XNUMXつのエラー内にABCDEFGを含むファイルfooの行数を示します。
agrep -1 -D2 -S2'ABCD#YZ 'foo
ABCDを含む行を出力し、その後に任意の距離内でYZを続けます。
最大2つの追加挿入(-D2および-SXNUMXも削除および置換を行います)
"高価な")。
agrep -5 -p abcdefghij / path / to / dictionary / words
の最初の5文字のうち少なくとも10文字を含むすべての単語のリストを出力します
アルファベット in 注文。 (試してみてください:アカデミアで始まり、で終わるリスト
いけにえは何かを意味するに違いない!)
agrep -1'abc [0-9](de | fg)* [xz] 'foo
最大XNUMXつのエラー内で、で始まる文字列を含む行を出力します
abcの後にXNUMX桁が続き、その後にdeまたはfgのいずれかがXNUMX回以上繰り返されます。
x、y、またはzのいずれかが続きます。
agrep -d '^ From''breakdown; internet' mbox
すべてのメールメッセージを出力します(パターン「^ From」は、メール内のメールメッセージを区切ります
file)キーワード「breakdown」および「internet」を含みます。
agrep -d '$$' -1 ' 'foo
1つのエラーが発生したword2とそれに続くwordXNUMXを含むすべての段落を検索します
空白の。 特に、word1が行の最後の単語で、word2が
次の行の最初の単語、次にスペースは改行記号に置き換えられます
そしてそれは一致します。 したがって、これは改行による分離を克服する方法です。 ノート
-d '$$'(または複数の行にまたがる別のデリム)が必要です。
それ以外の場合、agrepは一度にXNUMX行しか検索しないためです。
agrep '^ agrep'
このマニュアルページでagrepの使用例をすべて出力します。
onworks.netサービスを使用してagrepをオンラインで使用する