0

我有一个 bash 脚本,它从 csv 文件中提取错误并使用 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?

4

2 回答 2

0

如果 description 包含 characters \n,并且您想将其转换为实际的换行符,那么您必须做一些工作:

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

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

于 2015-02-17T19:47:34.300 回答
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

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

于 2015-02-17T20:13:31.623 回答