Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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 PyBugz Bash变量\n忽略换行符_Python_Bash_Variables_Newline_Pybugz - Fatal编程技术网

Python PyBugz Bash变量\n忽略换行符

Python PyBugz Bash变量\n忽略换行符,python,bash,variables,newline,pybugz,Python,Bash,Variables,Newline,Pybugz,我有一个bash脚本,它从csv文件中提取bug,并使用PyBugz将其导入bugzilla 使用以下顺序: description=$(echo "$line" |cut -f5 -d ';') bugz -d 3 -b http://bugzilla/bugzilla/xmlrpc.cgi -u "$user" -p "$pass" post --product "$prod" --component "$compo" --title "$title" --description "$des

我有一个bash脚本,它从csv文件中提取bug,并使用PyBugz将其导入bugzilla

使用以下顺序:

description=$(echo "$line" |cut -f5 -d ';')
bugz -d 3 -b http://bugzilla/bugzilla/xmlrpc.cgi -u "$user" -p "$pass" post --product "$prod" --component "$compo" --title "$title" --description "$description" --op-sys "$ops" --platform "$platf" --priority ""$prio"" --severity "$sever" --alias "$alias" --assigned-to "$assign" --cc "$ccl" --version "$ver" --url "$url" --append-command "$appen" --default-confirm "y"
但是包含“blabla\n blabla”的描述行(包括换行符)被认为是

“描述:布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉”


如果我导出一个bug并将输出转储到一个文本文件中,pybugz会将0x0a作为换行符。如何使pybugz将我的\n字符识别为0x0a

如果描述包含字符\n,并且您希望将其转换为实际的换行符,则必须执行以下操作:

bugz ... --description "$(echo -e "$description")" ...
这也会暴露出其他转义序列,请参见

我知道了

捕获数据的方法如下所示:

while read line ; do
description=$(echo "$line" |cut -f5 -d ';')
done <csvfile
读行时
;做
description=$(回显“$line”| cut-f5-d';”)

准确地完成了
$description
中的操作?它是否包含
\n
?如果使用
foo\n bar
的描述手动运行
bugz
,它能工作吗?
foo\\n bar
的描述有效吗?您好,谢谢您的建议。是,该文件确实包含0x5c 0x6e作为序列。对于您的代码,pybugz似乎也这样做。也许这就是python程序读取命令行的方式??顺便说一句:如果我使用一个包含新行的手动变量,python程序会正确识别新行。bash echo内置的
-e
选项应该解释0x5c 0x6e,并给出0x0a——比较
echo“foo\nbar”| od-tx1
vs
echo-e“foo\nbar”| od-t x1
您需要读取-r
,这样反斜杠就不会被吞没。bash中惯用的“逐行迭代文件”是
,而IFS=read-r行;做完成
lines=$(cat csvexport |wc -l)
for (( lineno=1 ; $lineno<=$lines ; lineno++ )); do
description=$(cat csvexport |sed -n "$lineno"p |cut -f5 -d ';')
done