mirrorlist.pacnew
次のようなミラーを含むファイル ( ) があります。
prakhar@inS4n3 ~ $ cat /etc/pacman.d/mirrorlist.pacnew
...
## Worldwide
#Server = https://dgix.ru/mirrors/archlinux/$repo/os/$arch
#Server = http://mirror.rackspace.com/archlinux/$repo/os/$arch
## Australia
#Server = http://mirror.aarnet.edu.au/pub/archlinux/$repo/os/$arch
...
ミラーを選択し、それらのコメントを解除することになっています。ただし、ツールrankmirrors
が最適なミラーを決定するため、すべてのミラーのコメントsed
を外します。
prakhar@inS4n3 ~ $ cat /etc/pacman.d/mirrorlist.pacnew | sed -r 's/^#([^#]+)/#\1\n\1/'
...
## Worldwide
#Server = https://dgix.ru/mirrors/archlinux/$repo/os/$arch
Server = https://dgix.ru/mirrors/archlinux/$repo/os/$arch
#Server = http://mirror.rackspace.com/archlinux/$repo/os/$arch
Server = http://mirror.rackspace.com/archlinux/$repo/os/$arch
## Australia
#Server = http://mirror.aarnet.edu.au/pub/archlinux/$repo/os/$arch
Server = http://mirror.aarnet.edu.au/pub/archlinux/$repo/os/$arch
...
ランクミラーがそれらを印刷し、進行状況を追跡できるため、コメント行を保持しています(処理中のコメント行は印刷されません)。
ただし、サーバー数と合計数も各行に出力したいと思いsed
ます。awk
具体的には:
- 上記の例で示したように、行のコメントを外します。
- 元のファイルから現在の#Serverインデックスのインデックスを出力します (ファイルには国名や一般的なコメントが含まれているため、実際の行番号ではありません)。
最終的な出力は次のようになります。
#22/247 Server = http://mirror.aarnet.edu.au/pub/archlinux/$repo/os/$arch
Server = http://mirror.aarnet.edu.au/pub/archlinux/$repo/os/$arch
ここに完全なファイルのコピーがあります。
編集:
私は自分自身である程度の進歩を遂げましたが、上記を達成しましたが、最適ではなかったので、自分の仕事を答えとして追加しました。