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

时间:2015-02-17 19:37:53

标签: 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 "$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"

但是包含“blablabla \ n blablabla”的描述行包括换行符被认为是

“描述:blablabla n blablabla”

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

2 个答案:

答案 0 :(得分:0)

如果说明包含字符 \ n ,并且您想将其转换为实际换行符,那么您将需要做一些工作:

bugz ... --description "$(echo -e "$description")" ...

这也会暴露其他转义序列,请参阅https://www.gnu.org/software/bash/manual/bashref.html#index-echo

答案 1 :(得分:0)

我明白了。

以下列方式完成捕获数据的方法:

while read line ; do
description=$(echo "$line" |cut -f5 -d ';')
done <csvfile

但是,读取已将\ n字符串更改为n 所以无论我在那之后做了什么,显然都是失败的。

我现在以一种非常不明智的方式做到了,但它就像一个魅力

lines=$(cat csvexport |wc -l)
for (( lineno=1 ; $lineno<=$lines ; lineno++ )); do
description=$(cat csvexport |sed -n "$lineno"p |cut -f5 -d ';')
done

一切都很好;-) 无论如何,谢谢你的帮助。