これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド grep-aptavail です。
プログラム:
NAME
grep-dctrl、grep-status、grep-available、grep-aptavail、grep-debtags - grep Debian コントロール
ファイル
SYNOPSIS
command -コピー|-C | - 助けて|-h | - バージョン|-V
command [オプション] filter [ file...]
コラボレー command の一つである grep-dctrl, grep ステータス, grep が利用可能, grep-aptavail &
grep-debtag.
DESCRIPTION
grep-dctrl プログラムは次のような質問に答えることができます この試験は is Debianの パッケージ ふー?, どの
バージョン of Debianの パッケージ バー is 今 現在?, どの Debianの パッケージ ありません John Redfern ドウ
維持する?, どの Debianの パッケージ 何とか 関連する 〜へ スキーム プログラミング 言語?,
そして、いくつかの助けを借りて、 誰 維持する 本質的な パッケージ of a Debianの システム?を与えると、
便利な入力ファイル。
プログラム grep が利用可能, grep ステータス, grep-aptavail & grep-debtag の別名です
(実際には、へのシンボリックリンク) grep-dctrl。 これらのエイリアスは、デフォルトの入力として
dpkg(1) 利用できます & status ファイル、 apt-cache ダンプアベイル 出力と 借金札
ダンプアベイル それぞれ出力します。
grep-dctrl 専門です grep 以下のファイルを処理するためのプログラム
Debian パッケージの一般的な形式 コントロール Debian ポリシーで説明されているように、ファイル。
これらには、 dpkg 利用できます ファイル、 dpkg status ファイル、および パッケージ 上のファイル
配布メディア (Debian CD-ROM や Debian を提供する FTP サイトなど)。
あなたは与える必要があります filter コマンドライン上の式。 の filter どのような種類のものかを定義します
段落 (別名パッケージ レコード) が出力されます。 シンプルな filter に沿った検索パターンです
それを変更するオプションを付けてください。 可能な修飾子は次のとおりです。 --eregex, - 分野, --大文字と小文字を区別しない,
-正規表現 & - 完全に一致、およびそれに相当する XNUMX 文字の文字列。 デフォルトでは、
検索は、各段落で大文字と小文字を区別する固定部分文字列一致です (つまり、
パッケージレコード)を入力に含めます。 適切な修飾子を使用すると、これを変更できます。
大文字と小文字を区別せず、パターンは拡張 POSIX 正規表現として見なすことができます。
式です。
フィルタを組み合わせてより複雑な構造を形成することができます filter 接続詞を使用する - と, - また &
- いいえ。 括弧 (通常、シェルのためにエスケープする必要がある) は、次の目的で使用できます。
グループ化。
デフォルトでは、一致する段落全体が標準出力に出力されます。 特定の
フィールドは、 -s オプションを選択します。
後に filter 式には XNUMX 個以上が入ります file 名前。 NS file 名 - に連れて行かれる
標準入力ストリームを意味します。 の fileは順番に個別に検索されます。 彼らです
一緒に連結されました。 言い換えれば、 file 常に終わりを暗示します
現在の段落。
ない場合 file 名前が指定されている場合、プログラム名はデフォルトの入力ファイルを識別するために使用されます。
プログラム名は、現在のプログラム名の基本形式 (
0 番目のコマンドライン引数 (必要に応じて)。
OPTIONS
指定 サーチ パターン
--pattern =パターン
指定します パターン 検索されること。 通常、このスイッチは必要ありません。
パターン 単独で与えることができます。 しかし、 パターンダッシュ (-) しなければならない
スイッチと間違えないように、このスイッチを使って入力してください。
修飾子 of シンプルな フィルター
-F フィールド,フィールド、 ... | --フィールド=フィールド,フィールド、 ...
パターンマッチングを次のものに制限します フィールド与えられます。 複数 フィールド 名前をひとつに -F
オプションと複数 -F オプションを XNUMX つでシンプルに filter 許可されています。 という名前の検索
フィルターによる処理はすべての中で実行されます。 フィールド名前が付けられたらすぐに
それらのうち一致し、全体は単純です filter 一致しているとみなされます。
A フィールド 仕様にはコロン (:)。 この場合、 までの部分は、
コロンは検索対象のフィールドの名前とみなされ、その後の部分が検索されます。
フィールドが使用される場合、コロンはその内容が使用されるフィールドの名前として解釈されます。
検索は空です。
-P の省略形 -Fパッケージ.
-S の省略形 -Fソース:パッケージ.
-e, --eregex
現在の単純なフィルターのパターンを拡張 POSIX 正規のものとみなします。
表現
-r, -正規表現
現在の単純なフィルターのパターンを標準の POSIX 正規のものとしてみなします
式です。
-i, --大文字と小文字を区別しない
現在の単純なフィルターで一致を検索する場合、大文字と小文字は区別されません。
-X, - 完全に一致
現在の単純なフィルターで (部分文字列一致ではなく) 完全一致を実行します。
-w, --パッケージ全体
次の構文を想定して、パッケージ名全体に対して拡張正規表現の一致を実行します。
パッケージ間の関係フィールドの 依存,お勧め、...このとき
フラグが指定されているため、「libpcre3」などのサブパッケージ名についても心配する必要はありません
「libpcre3-dev」に一致します。 このフラグは、次のことを意味します (そして互換性がありません)。 -e.
--eq Debian バージョン番号システムに基づいて等価比較を実行します。 パターンの場合
または、検索対象のフィールドが有効な Debian バージョン番号ではない場合、段落
は一致しないものとみなされます。 特殊なケースとして、これは比較することができます。
等価性を表す単純な非負の整数。
--lt Debian バージョン番号システムに基づいて、厳密に「小なり」比較を実行します。 もし
パターンまたは検索対象のフィールドが有効な Debian バージョン番号ではありません。
段落は不一致とみなされます。 特殊なケースとして、これは次のことが可能です
単純な非負の整数を比較します。
--le Debian バージョン番号システムに基づいて以下の比較を実行します。 もし
パターンまたは検索対象のフィールドが有効な Debian バージョン番号ではありません。
段落は不一致とみなされます。 特殊なケースとして、これは次のことが可能です
単純な非負の整数を比較します。
--gt Debian バージョン番号システムに基づいて厳密に大なり比較を実行します。 もし
検索対象のパターンまたはフィールドが有効な Debian バージョン番号ではありません。
段落は一致しないものとみなされます。 特殊なケースとして、これは次のことが可能です
単純な非負の整数を比較します。
--げ Debian バージョン番号システムに基づいて以上の比較を実行します。 もし
検索対象のパターンまたはフィールドが有効な Debian バージョン番号ではありません。
段落は一致しないものとみなされます。 特殊なケースとして、これは次のことが可能です
単純な非負の整数を比較します。
結合 フィルター
-!, - いいえ, !
次のフィルタが一致する場合に一致します 一致しています。
-o, - また
前後のフィルタのいずれかまたは両方が一致する場合に一致します。
-a, - と
前後のフィルタの両方が一致する場合に一致します。
( ... )
括弧はグループ化に使用できます。 ほとんどの場合、エスケープする必要があることに注意してください。
貝殻。 フィルタ修飾子は左括弧の前に指定できます。 かれらは〜だろう
かっこ内の単純なフィルターごとに繰り返されたかのように扱われます。
出力 形式でアーカイブしたプロジェクトを保存します. 修飾子
-l, --一致するファイル
を含むファイルのファイル名のみをそれぞれ別の行に出力します。
少なくとも XNUMX つの一致する段落。 これは、 -v & -L オプション、および
他のすべての出力形式修飾子は無視されます。
-L, --一致しないファイル
そうでないファイルのファイル名のみをそれぞれ別の行に出力します。
一致する段落が含まれています。 これは、 -v & -l オプションは、
他のすべての出力形式修飾子は無視されます。
-s フィールド,フィールド、 ... | --show-field=フィールド,フィールド、 ...
これらの本文のみを表示します フィールド一致する段落から。 の フィールド 名
コロンやカンマを含めることはできません。 カンマは区切りに使用されます フィールド の名前
このオプションの引数。 の フィールドはここで指定された順序で表示されます。 見る
オプションも -I。 が存在しない場合は、 --ensure--dctrl オプション (場合)
フィールドが XNUMX つだけ選択されている場合、段落区切り文字は出力されません。
-I, --反転表示
オプションの意味を反転する -s: を持つフィールドのみを表示します。 命名された
使用して -s オプション。 実装の結果として、フィールドの順序は
元の段落の内容は保存されません。
A フィールド 指定にはコロンを含めることができます。 この場合、結腸までの部分は、
は表示するフィールドの名前として解釈され、コロン以降の部分は表示されるフィールドの名前として解釈されます。
表示されるフィールドが空の場合にその内容が使用されるフィールドの名前。
-d の最初の行のみを表示します 説明 一致する段落のフィールド。 もし
いいえ -s オプションが指定されている場合、このオプションも影響します -s 説明; ある場合
-s オプションですが、これには含まれていません 説明 フィールド名に XNUMX つが追加されます
オプション。 したがって、 説明 出力内のフィールドの位置は次によって決定されます。
-s オプションがある場合は、最後のフィールドがデフォルトになります。
-n, --フィールド名なし
指定したフィールドを表示するときにフィールド名を抑制し、その本文のみが表示されます。
各フィールドは、フィールド名の後ろにコロンを付けずに、元の形式で出力されます。
それと本文の先頭にある空白。
-v, --反転マッチ
一致するすべての段落を表示するのではなく、一致する段落を表示します。
一致しています。
-c, - カウント
一致する段落を表示する代わりに (または、 -v、一致しません)、表示
それらの段落の数。
-q, - 静かな, - 静けさ
標準出力ストリームには何も出力しません。 代わりに、次の直後に終了します。
最初の一致を見つけます。
その他
--ensure-dctrl
出力が dctrl 形式であること、特に、常に
段落を区切る空行。 このオプションは、次の場合には無視されます。 -n オプションがあります
このオプションは意図的に dctrl 以外のフォーマットを要求しているため、選択されています。
出力。 将来のバージョンでは、このオプションがデフォルトの動作になる可能性があります。
--互換性
任意のものをオーバーライドします --ensure-dctrl コマンドラインで前に指定したオプション。
--ignore-parse-errors
入力解析時のエラーを無視します。 解析できない段落は無視されます。
その全体、および次の段落は最初の改行の後に始まるものとみなされます
エラーの場所から。
--debug-optparse
現在のコマンドラインがどのように解析されたかを表示します。
--エラーレベル=レベル
ログレベルを次のように設定します レベル. レベル の一つである 致命的な, 重要, 情報提供 & debug,
ただし、最後のものは、コンパイル時のオプションによっては利用できない場合があります。 これらは
ここではカテゴリが順番に示されています。 発行されるすべてのメッセージ 致命的な である
エフェクトは、 重要 エラーレベルなど。 デフォルトは
重要.
-V, - バージョン
バージョン情報を印刷します。
-C, -コピー
著作権ライセンスを印刷します。 これにより、多くの出力が生成されます。 必ずリダイレクトするか、
どこか(お気に入りのポケベルなど)にパイプしてください。
-h, - 助けて
ヘルプの概要を印刷します。
例
このプログラムの最も簡単な使用法は、ステータスまたは利用可能な記録を出力することです。
パッケージ。 この点において、 grep-dctrl のようなものです dpkg -s or dpkg --print-avail。 印刷する
パッケージ「mixal」のステータスレコードを出力します。
% grep-status -PX mixal
利用可能なレコードを取得するには、次を使用します
% grep-available -PX mixal
実際、任意の Debian 制御ファイルから「mixal」パッケージのレコードを要求できます。
たとえば、Debian 6.0 CD-ROM を持っているとします。 パッケージ 現在のディレクトリ内のファイル。 今ならできます
する
% grep-dctrl -PX mixal パッケージ
だけど grep-dctrl 単にエミュレートする以上のことができる dpkg。 多かれ少なかれエミュレートできます apt-cache!
そのプログラムには、パッケージの説明を検索する検索機能があります。 しかし、私たちにはそれができます
あまりにも:
% grep-available -F 説明 foo
利用可能なすべての説明内で文字列「foo」を大文字と小文字を区別して検索します。
パッケージ。 大文字と小文字を区別しない場合は、次を使用します
% grep-available -F 説明 -i foo
本当のことを言うと、 apt-cache パッケージ名も検索します。 個別に検索できます
名前; そうするために、そうする
% grep-available -F パッケージ foo
or
% grep-available -P foo
それはほぼ同じことです。 説明と名前の両方で検索することもできます。
いずれかに一致が見つかった場合は、パッケージ レコードが出力されます。
% grep-available -P -F 説明 foo
or
% grep-available -F パッケージ -F 説明 foo
この種の検索は、次の検索とまったく同じです。 apt-cache ありません。
どちらでもないことがXNUMXつあります dpkg また apt-cache する。 全体から文字列を検索する status
or 利用できます ファイル (さらに言えば、任意の Debian 制御ファイル) を作成し、すべてのパッケージを出力します
一致した場所を記録します。 試す
% grep 利用可能な dpkg
時々、どれだけ徹底的に観察してください dpkg Debian に侵入しました。
上記のクエリはすべて、単純な部分文字列検索に基づいています。 しかし grep-dctrl 処理できます
検索パターン内の正規表現。 たとえば、すべてのステータス レコードを表示するには、
名前に「apt」または「dpkg」が含まれるパッケージの場合は、使用します
% grep-status -P -e 'apt|dpkg'
これらのすばらしいクエリをすべて見てきたので、次のことを疑問に思うかもしれません。
常に段落全体を見る必要があります。 たとえば、あなたは興味だけかもしれません
関連するパッケージの依存関係情報にあります。 大丈夫。 依存線を表示するには
私が管理しているすべてのパッケージについて、
% grep-available -F Maintainer -s 依存 '[メール保護]'
パッケージの名前も確認したい場合は、次を使用します。
% grep-available -F Maintainer -s パッケージ、依存 \
'[メール保護]'
の引数にはスペースを入れてはいけないことに注意してください。 -s スイッチ。
より複雑なクエリも可能です。 たとえば、パッケージのリストを表示するには
私によって保守されており、libc6 に応じて、実行します
% grep-available -F Maintainer '[メール保護]'\
-a -F libc6 に依存します -s パッケージに依存します
他の UNIX フィルタも役立つことを覚えておいてください。 誰だろうと思ったことはありませんか?
維持されているソース パッケージの数に基づいて、最もアクティブな Debian 開発者は誰ですか?
簡単。 最新のコピーを持っているだけで十分です ソース 任意の Debian からのファイル
鏡。
% grep-dctrl -n -s メンテナ '' 並べ替え | \
ユニーク -c | 並べ替え -nr
この例は、巧妙なトリックを示しています。 を
パッケージの場合は、空のパターンを指定するだけです。
「bogopackage」という用語は、Debian 開発者が保守するパッケージの数を意味します。
メンテナの bogopackage 数を取得するには dctrl ツール、 いう
% grep-available -c -FMaintainer \
"`grep-available -sMaintainer -n -PX dctrl-tools`"
場合によっては、複数のフィールドのデータを同じ行に出力すると便利です。 のために
たとえば、次のコマンドは、インストールされているパッケージのリストをその順に出力します。
インストールサイズ.
% grep-status -FStatus -sインストール済みサイズ,パッケージ -n \
"インストールは正常にインストールされました" -a -FInstalled-Size --gt 0 \
| 貼り付け -sd " \n" | ソート -n
「 \n」文字列にはちょうど 2 つのスペースが必要であることに注意してください。
もう XNUMX つの通常の使用例は、ビルドの依存関係として別のパッケージを持つパッケージを探すことです。
% grep-dctrl -s パッケージ -F ビルド依存,ビルド依存独立 \
キルト / var / lib / apt / lists /*出典
これらの例では、このユーティリティの一般的な使用法を多数取り上げていますが、考えられるすべての使用法を網羅しているわけではありません。
想像力を使って! 構成要素はそこにあります、何かが足りない場合は私にさせてください
知っています。
診断
エラーがない場合、終了コードは 0 少なくとも XNUMX つの一致が見つかった場合に使用され、
終了コード 1 一致するものが見つからなかった場合に使用されます。 エラーがあった場合の終了コードは次のとおりです。 2,
XNUMX つの例外を除いて。 もし -q, - 静かな or - 静けさ オプションが使用される場合、終了コード 0 is
致命的ではないエラーが発生したかどうかに関係なく、一致が見つかった場合に使用されます。
これらのメッセージはログ レベルで出力されます 致命的な & 重要。 追加のメッセージが表示される場合があります。
システム ライブラリによって提供されます。 この リスト is 不完全な。
A パターン is 義務的な
検索するパターンを指定する必要があります。
不正な filter
フィルタが指定されていませんでしたが、フィルタが必要です。
find 十分な メモリ
利用可能なメモリよりも多くのメモリが必要でした。 このエラーは一時的なものである可能性があります。
もう一度試してみると、すべてうまくいくかもしれません。
抑える フィールド 名 いつ 表示 全体 パラグラフ
を使用しないときは、 -s スイッチ、 grep-dctrl 一致する段落を渡すだけです
決して触れずにスルーしてください。 これは、たとえば、次のことしか使用できないことを意味します。
-n あなたが使うとき -s.
一貫性のない 修飾子 of シンプルな フィルター
単純なフィルターの矛盾する修飾子が使用されました。 たとえば、おそらく両方 -X &
-e 同じ単純なフィルターに対して指定されました。
行方不明 ')' in command ライン
指定されたフィルターには、閉じ括弧よりも開始括弧の方が多かったです。
いいえ そのような ログ レベル
への議論 -エラーレベル 無効でした。
あまりに 多くの file 名
コマンドラインで指定されたファイル名の数がコンパイル時間を超えました
限定。
あまりに 多くの 出力 フィールド
への議論 -s フィールド名が多すぎます。 この数は 256 に制限されています。
予期しない ')' in command ライン
閉じ括弧に一致する開き括弧がありませんでした。
コマンドライン。
onworks.net サービスを使用してオンラインで grep-aptavail を使用する