我有以下情况:
我的脚本(比如script.py)接受一个参数作为输入。我有一个带有一系列可能输入的.txt文件(每个输入都是一个表示ID的字符串)。
在脚本中我做了类似的事情#!/usr/bin/python
import sys
def doStuff(ID):
ID = str(ID)
path = ID + "/posts?"
print "\n\n\t"+path
foo = ID + "hello"
print foo
print ID+"hello"
sys.exit(0)
inputID =sys.argv[1]
print "Input ID\t-\t" + str(inputID)
doStuff(inputID)
如果我用
运行代码python script.py 123456789
我正确得到了
Input ID - 123456789
123456789/posts?
123456789hello
123456789hello
但如果我做的话
cat IDs.txt | parallel python script.py {}
我得到了
Input ID - 123456789
/posts? 123456789
hello6789
hello6789
这里发生了什么?当我连接字符串时,订单被还原,而且在最后两次打印中,inputID被"你好"
覆盖答案 0 :(得分:0)
我认为您的.txt文件中有\ r \ n,因为这完全符合您的要求:
printf '123456789\r\n' | parallel python script.py
从文本文件中删除\ r或让GNU Parallel执行:
printf '123456789\r\n' | parallel python script.py '{= s/\r// =}'