Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建以逗号分隔的路径列表(允许路径中有空格),并将结果作为变量传递以供再次使用_Python_Linux_Bash_Awk_Sed - Fatal编程技术网

Python 创建以逗号分隔的路径列表(允许路径中有空格),并将结果作为变量传递以供再次使用

Python 创建以逗号分隔的路径列表(允许路径中有空格),并将结果作为变量传递以供再次使用,python,linux,bash,awk,sed,Python,Linux,Bash,Awk,Sed,我试图使用rtcontrol(的一部分)的输出,该输出用于从命令行控制TF。我在格式化一个调用的输出以用作另一个调用的输入时遇到问题 我希望能够只选择满足该标准但不与另一个种子共享路径的种子 过程如下 PATHS=$(rtcontrol ratio=+2 completed=+5d -qopath) echo $PATHS # Output # /home/user/path/name1 # /home/user/path/name2 # /home/user/path/name 3 # /h

我试图使用rtcontrol(的一部分)的输出,该输出用于从命令行控制TF。我在格式化一个调用的输出以用作另一个调用的输入时遇到问题

我希望能够只选择满足该标准但不与另一个种子共享路径的种子

过程如下

PATHS=$(rtcontrol ratio=+2 completed=+5d -qopath)

echo $PATHS
# Output
# /home/user/path/name1
# /home/user/path/name2
# /home/user/path/name 3
# /home/user/path/name 3
# /home/user/path/name 4
# /home/user/path/name5

# Remove duplicates paths and convert $PATHS to comma delimited variable PATHS.
#
# UNSURE HERE....
#
# PATHS="/home/user/path/name1","/home/user/path/name2","/home/user/path/name 3","/home/user/path/name 4","/home/user/path/name5"

#Pass PATHS to rtcontrol again to get torrents in one of the paths.
PATHS_2=$(rtcontrol path=$PATHS -qopath)

echo $PATHS_2
#output
#/home/user/path/name1
#/home/user/path/name1
#/home/user/path/name2
#/home/user/path/name 3
#/home/user/path/name 3
#/home/user/path/name 4
#/home/user/path/name5

# Remove duplicates and convert $PATHS_2 to comma delimited variable.
#
# UNSURE HERE....
#
# PATHS_2="/home/user/path/name2","/home/user/path/name 3","/home/user/path/name 4","/home/user/path/name5"

#Pass to rtcontrol to perform action
rtcontrol path=$PATHS_2 --cull
原因可能是torrent不满足条件或
比率=+2 completed=+5d
,但具有与之相同的路径。这就是第二次调用的原因
rtcontrolpath=$path-qopath

我尝试了uniq、sed和awk的不同组合,以及使用管道传递输出。应该注意的是,
rtcontrol
输出可以通过管道输出,例如
rtcontrol name=“*Test*-qoname | uniq-u

这可以在纯bash中处理,也可以用Python来处理。还有一些Python库可以与torrent程序接口,这些程序可以执行类似的功能,甚至可以执行我正在研究的更高级的功能

 #!/bin/python
 import os
 import sys

 paths = {}
 for line in sys.stdin:
   path = line.strip()
   paths[path] = path
 print ','.join( sorted( paths.keys() )
 exit( 0 )