【发布时间】:2015-08-08 07:59:01
【问题描述】:
我的问题和这里提到的完全一样
Remove New Line Character from CSV file's string column
但我正在寻找的是 shell script 中的解决方案。我希望在我的文件中用新修改的附加行替换虚线。这对我来说是必需的,因为我的 csv 文件中的 RS 是换行符。
【问题讨论】:
我的问题和这里提到的完全一样
Remove New Line Character from CSV file's string column
但我正在寻找的是 shell script 中的解决方案。我希望在我的文件中用新修改的附加行替换虚线。这对我来说是必需的,因为我的 csv 文件中的 RS 是换行符。
【问题讨论】:
我不知道您的回声如何抑制换行符(选项 -n 或以 \c 结尾的字符串)。一个解决方案是当一行不以双引号结尾时,它被认为是不完整的。 您可以将输出重定向到新文件。
while read line; do
if [[ "$line" = *\" ]]; then
echo "${line}"
else
echo -n "${line}"
fi
done < input
【讨论】:
你可以试试这个
sed '/"[^"][^"]*$/ {
:again
N
s/\n//
/"[^"][^"]*$/ b again
}' input_file
/"[^"][^"]*$/ 搜索未终止的报价
:again - 标签
N - 追加下一行
s/\n// - 删除换行符
/"[^"][^"]*$/ b again - 如果还有未终止的引用则循环
【讨论】: