次に始まる最初の行を見つけます。次のような

次に始まる最初の行を見つけます。次のような

より良い説明のために私の質問をしましょう。私はcygwinを使用しており、インストールは次のsetup.ini形式に基づいています。

    @ package-name
    sdesc: "short description, on one line"
    ldesc: "long description of arbitrary length, commonly multiple lines"
    category: categories in which the packege belonges, one line
    requires: packages (libs etc) required by this package, one line

その後、以下のパッケージなどがあります。

必要なのは、パッケージ名が与えられたら、そのパッケージに必要なすべてのパッケージを出力することです(可能な場合は「requires」プレフィックスなし)。

私はこれが基本的なgrepであると確信していますが、最初に触れました。ありがとうございます。

ベストアンサー1

このタスクを実行するためにgrepをどのように使用するかはわかりませんが、このタイプのタスクにはawkを好みます。それは私がやりたいことをよりよく制御することを可能にします。私はawkの専門家ではありませんが、まだ学んでいますが、これを達成した方法は次のとおりです。

PKGNAM="package-name"; awk "/$PKGNAM\$/,/requires:/ { if ( \$0 ~ /requires:/ ) { sub( /^requires:.?/, \"\"  ); print } }"

修正する:PKGNAM変数を使用して、パッケージ名と一致するようにawkコマンドの例を更新しました。

ここに画像の説明を入力してください。

HTH。

おすすめ記事