-1

我正在尝试为程序的自动生成日志制作解析器,并且生成 csv 的解析器部分开始出现奇怪的行为。疯狂的部分是这个:

echo "$COMMAND_3_NAME,,$TIME_1_START,$TIME_1_END,$DIFF_1,,$TIME_2_START,$TIME_2_END,$DIFF_2,,$TIME_3_START,$TIME_3_END,$DIFF_3,,$TIME_USR_START,$TIME_USR_END,$DIFF_USR" >> $OUT_NAME

此行生成以下输出:

Command_3,,458.7
484.0,483.9
507.5,-458.7
967.9
507.5,,271.8
271.8,271.8
271.8,-271.8
543.6
271.8,,,,,,967.8
967.8,967.8
967.8,-967.8
1935.6
967.8

那里不应该有任何\n,因为我在打印的每个变量中都做了一个“sed”s/\n//g“”。

4

1 回答 1

1

对于输入

foo
bar

sed 在字符串fooand上运行表达式bar,而不是foo\nand bar\n

sed -e 's/\n//g'因此不会替换任何换行符。

要删除换行符,您可以通过管道tr -d '\n'或使用 bash 变量扩展"${myvariable//$'\n'/}"

于 2013-06-14T20:25:09.870 回答