【问题标题】:xargs -I % /path/ %xargs -I % /路径/ %
【发布时间】:2015-10-16 07:45:18
【问题描述】:

如果 torrent 有问题,例如在 id 列中的硬盘驱动器上删除了数据,则它的数字类似于“ID*”。

我想过滤 torrent 列表中在 id(LIKE ID* 或 1*,2*,25*) 末尾带有符号“*”的 torrent 的 ID,并将它们从 torrent 列表中删除。

完整的命令是:

/usr/bin/transmission-remote 127.0.0.1:9091 --auth ts:ts -l | grep "*" | awk '{print $1}' \ 
| xargs  -n 1 -I  % /usr/bin/transmission-remote 127.0.0.1:9091 --auth ts:ts -t% -r

我预期的结果:

 /usr/bin/transmission-remote 127.0.0.1:9091 --auth ts:ts -t ID* -r

但是出了点问题。 传输说:

127.0.0.1:9091/transmission/rpc/ responded: "success"

但是 torrent 没有从列表中删除。

如何查看最终结果以与预期进行比较?

【问题讨论】:

  • 试试把echo放在那里?
  • 尝试运行您的原始命令 → grep → awk 链,而不将其通过管道输送到最终的 xargs 中。当我尝试时,它没有输出。 (可能是因为 grep 不好,“*”本身是没有意义的,并且可能是一个错误)。我用单个awk '$1 ~ /^[0-9]+$/ {print $1}' 替换了grep awk,这似乎可以提供更好的结果,但我不知道它们是否是您想要的结果。 (它只打印所有 ID)
  • 我试过了。接下来我看到了:21* 22* 因为这个种子有问题。我提到如果 torrent 在 id 列中有问题,它的数字类似于“XX*”。硬盘上的数据被删除等问题。
  • ID :25* 完成:100% 拥有:19.06 MB ETA:完成:0.0 下:0.0 状态:停止 名称:DAEMON.exe
  • 我需要的结果是种子的 ID,最后带有符号“*”。之后,我将此 ID 添加到命令中:/usr/bin/transmission-remote 127.0.0.1:9091 --auth ts:ts -t ID* -r

标签: linux xargs


【解决方案1】:

获取 ID:

transmission-remote -l | grep '*' | awk '{print $1}' | grep -o '[0-9]*'

完整的命令:

transmission-remote -l | grep '*' | awk '{print $1}' | grep -o '[0-9]*' | tr "\\n" "," | xargs -n 1 -I \% transmission-remote -t \% -r

完成并完成(: 随着使用“tr”加入所有种子 ID 并避免在循环中运行所有内容的额外改进(Transmission-RPC 重复调用非常耗费资源)

【讨论】:

    猜你喜欢
    • 2018-06-02
    • 2011-07-08
    • 2019-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    • 1970-01-01
    • 2021-01-06
    相关资源
    最近更新 更多