我的问题与此处提到的问题完全相同
Remove New Line Character from CSV file's string column
但我正在寻找的是shell脚本中的解决方案。我希望在我的文件中用新修改的附加行替换断行。这对我来说是必需的,因为我的csv文件中的RS是换行符。
答案 0 :(得分:0)
我不知道你的回声如何抑制换行符(选项-n或带有\ c的结束字符串)。当一条线没有以双引号结束时,解决方案就是认为线是不完整的。 您可以将输出重定向到新文件。
while read line; do
if [[ "$line" = *\" ]]; then
echo "${line}"
else
echo -n "${line}"
fi
done < input
答案 1 :(得分:0)
你可以试试这个
sed '/"[^"][^"]*$/ {
:again
N
s/\n//
/"[^"][^"]*$/ b again
}' input_file
/"[^"][^"]*$/
搜索未终止的报价
:again
- 标签
N
- 附加下一行
s/\n//
- 删除换行符
/"[^"][^"]*$/ b again
- 如果仍有未终止的报价