完全な住所を表示する必要があります。カール、ステータスコードが「301」の結果が見つかった場合。
これは私の変数です。
search=$(curl -s --head -w %{http_code} https://launchpad.net/~[a-z]/+archive/pipelight -o /dev/null | sed 's#404##g')
echo $search
301
上記の方法は機能しますが、サイトが存在し、ステータスコードが「301」の場合にのみ表示されます。
私の考えでは
echo $search
https://launchpad.net/~mqchael/+archive/pipelight
修正する
ここに私が必要とするものを説明できる新しい変数があります。この変数を使用すると、Ubuntuで同様のppaを検索してインストールできます。
ppa=$(curl https://launchpad.net/ubuntu/+ppas?name_filter=$packagename | grep '<td><a href="/~' | grep ">$packagename<" )
echo $ppa
例:
ppa=$(curl https://launchpad.net/ubuntu/+ppas?name_filter=Pipelight | grep '<td><a href="/~' | grep ">Pipelight<" )
echo $ppa
<td><a href="/~mqchael/+archive/pipelight">Pipelight</a></td>
ここで問題は抽出できないことですmqchael
(名前は変更可能です)。パイプライトも単なる例です。
変数を適用するときの最終形式です。
ppa:mqchael/pipelight
ベストアンサー1
これにより、目的のタスクが実行されます。
curl https://launchpad.net/ubuntu/+ppas?name_filter=Pipelight | awk -F/ '/>Pipelight</{print $2}'
説明する:
-F/
フィールド区切り記号をに設定します。/
これは、「/>Pipelight</
一致する唯一の行でコマンドを実行します。したがって、少なくとも公開した例では、行は次のようになります。{}
>Pipelight<
>Pipelight<
<td><a href="/~mqchael/+archive/pipelight">Pipelight</a></td>
awk
したがって、分割によって/
最初のフィールドはになり、<td><a href="
2番目のフィールドはになります~mqchael
。{print $2}
それが印刷される理由です~mqchael
。
チルダ()も削除するには、~
次のコマンドを使用します。
curl https://launchpad.net/ubuntu/+ppas?name_filter=Pipelight |
awk -F/ '/>Pipelight</{print $2}' | sed 's/~//'