実行中の急流のリストを表示するためにTransmission-remoteを使用しています。
transmission-remote -l
次の結果を使用する場合:
ID Done Have ETA Up Down Ratio Status Name
1 100% 10GB Done 0.0 0.0 0.0 Idle Torrent
Sum: 15.91 GB 0.0 0.0
急流の割合と名前がわかりますか?
現在私は以下を持っています:
transmission-remote -l | grep -o -P '.{0,3}%'
が返されます100%
答え1
grepでこれを行う方法はわかりませんが、簡単な解決策がありますawk
。
リストの最初の急流でのみ機能します。
transmission-remote -l | awk '{if (NR == 3) {print $2, $9}} '
すべてのシードについて(各シードの前に空白行がある場合はtrueでない場合はi += 2
置き換えますi++
):
transmission-remote -l | awk '{lines[NR]=$2 " " $9} END {for (i = 3; i < NR; i += 2) print lines[i]} '
2番目のケースでは、行を配列に入れ、入力を読み取るときにforループを使用して印刷します。
答え2
head -n 3 | tail -n 1 |
sed -re 's/[[:blank:]]+/\t/g' |
cut -f 2,9
これは次のことを行います。
- 3つのレコード(行)を選択
- スペースを単一のタブに変換する(前処理を切り取る)
- フィールド2と9を選択してください。
cut
それ自体は十分に強力ではないので、頭と尾を使ってスレッド(特別なものではないようですgrep
)を選択し、sed
準備を前処理する簡単な方法を使用しますcut
。