
提出しましたお持ちのパッケージでテストが必要なパッチを見つける方法はありますか?動作するスクリプトがあります。
for source in $(dpkg-query --show -f '${source:Package}\n' | sort -u); do bts select source:${source} tag:patch; done
コマンドが動作すると、出力が混乱し、次の数行が出力されます。
[$] for source in $(dpkg-query --show -f '${source:Package}\n' | sort -u); do bts select source:${source} tag:patch; done
781691
725728
805989
677570
772688
823072
もう方法があればいいのに――
ㅏ。より新しく興味深いパッチが以前のパッチよりも先に知られ、理解され、試みられるようにリストを降順にします。
b. パッケージが属するパッケージをリストする必要があります。
たとえば、823072はパッチのあるacpi-supportに属し、805989はaccountserviceに属します。パッケージ名を持つ方がはるかに優れています。
氏。最後に、リストが完了するたびに(または完了しますか?)コマンドプロンプトで終了する必要があります。何らかの理由でネットワーク接続が中断された場合、またはエラーが見つからない場合は、考えられる理由を説明する説明を参照してください。
可能ですか?私はzshを使っていて、oh-my-zshを使っているので、すべてが~/.oh-my-zshで動作します。
更新 - ローカルファイルのリストと同様のことをしましたが、上記を達成する方法がわかりません。
┌─[shirish@debian] - [~] - [6266]
└─[$] alias ll
ll='ls -lt --color=auto --time-style=long-iso'
Update 2 - 一時的に試してみましたが、sort
よくわかりません。sed
私は見たhttp://www.thegeekstuff.com/2013/04/sort-files/また
http://www.tecmint.com/sort-command-linux/
そして特に見たら――
次のsortコマンドは、テストファイルの行を逆順に並べ替え、並べ替えられた出力から重複した行を削除します。
$sort -r -u テスト 5 4 2 1
共有スクリプトで同じことを試しましたが、まったく異なる結果が出ました。
┌─[shirish@debian] - [~] - [6273]
└─[$] for source in $(dpkg-query --show -f '${source:Package}\n' | sort -r -u); do bts select source:${source} tag:patch; done
538069
831900
779566
622933
691638
776663
419233
AFAI理解しています。エラー番号が重複せず、一意であることを確認するために順序が使用されました(リストが1回しかないことを意味します)。例のように動作する必要がありますが、その逆が機能しない理由は実際にはわかりません。共有。おそらくzshに関連しているかもしれませんし、私が間違って書いたかもしれません:(。
また、私が何かを理解できることを確認するには、sedを探してください。
アップデート3 - 何らかの理由でzshではsedビットatmを使用すると動作しないようです.
┌─[shirish@debian] - [~] - [6312]
└─[$] cat find-interesting-patches.sh
for source in $(dpkg-query --show -f '${source:Package}\n' | sort -u) do bts select source:${source} tag:patch | sed "s/^/${source} /g" done
そして -
┌─[shirish@debian] - [~] - [6313]
└─[$] ll -h find-interesting-patches.sh
-rwxr-xr-x 1 shirish shirish 141 2016-11-23 23:56 find-interesting-patches.sh
だから実行権限があります
それを実行しようとすると -
┌─[shirish@debian] - [~] - [6315]
└─[$] ./find-interesting-patches.sh
./find-interesting-patches.sh: 1: ./find-interesting-patches.sh: Syntax error: "|" unexpected
ここに何が間違っている可能性があるのかというアイデアはありますか?
答え1
から始まる
for source in $(dpkg-query --show -f '${source:Package}\n' | sort -u); do bts select source:${source} tag:patch; done
出力ソートには、sort
出力全体を逆順に数値でソートする別の用途が含まれます。
for source in $(dpkg-query --show -f '${source:Package}\n' | sort -u); do bts select source:${source} tag:patch; done \
| sort -n -r
${source}
エラー番号とともに(ソース)パッケージ名を表示するには、最も単純なオプションは(ソースパッケージ)を正しい場所に追加し、実行されるたびにそのbts
出力を処理することです。
for source in $(dpkg-query --show -f '${source:Package}\n' | sort -u)
do bts select source:${source} tag:patch | sed "s/^/${source} /g"
done
これにより、次の形式の行が出力されます。
linux 845422
sort
したがって、2番目のフィールドを並べ替えるには、最終フィールドを変更する必要があります。
for source in $(dpkg-query --show -f '${source:Package}\n' | sort -u)
do bts select source:${source} tag:patch | sed "s/^/${source} /g"
done | sort -k2,2n -r
一行に
for source in $(dpkg-query --show -f '${source:Package}\n' | sort -u); do bts select source:${source} tag:patch | sed "s/^/${source} /g"; done | sort -k2,2n -r