我正在使用 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
我能找出 torrent 的百分比和名称吗?
目前我有以下内容:
transmission-remote -l | grep -o -P '.{0,3}%'
这将返回100%
答案1
不知道如何用 grep 做到这一点,但有一个简单的解决方案awk
。
仅适用于列表中的第一个 torrent:
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]} '
在第二种情况下,我们将行放入数组中,并在读取输入时使用 for 循环打印它们。
答案2
head -n 3 | tail -n 1 |
sed -re 's/[[:blank:]]+/\t/g' |
cut -f 2,9
这会:
- 选择3条记录(行)
- 将空格转换为单个制表符,(剪切的预处理)
- 选择字段 2 和 9
cut
单独使用还不够强大,所以我使用 head 和 tail 来选择线(似乎没有什么特别的grep
),然后一个简单的sed
配方来预处理准备cut
。