我有一个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?
答案 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
一切都很好;-) 无论如何,谢谢你的帮助。