【问题标题】:Remove New Line Character from CSV file's string column Shell script [duplicate]从 CSV 文件的字符串列 Shell 脚本中删除换行符 [重复]
【发布时间】:2015-08-08 07:59:01
【问题描述】:

我的问题和这里提到的完全一样

Remove New Line Character from CSV file's string column

但我正在寻找的是 shell script 中的解决方案。我希望在我的文件中用新修改的附加行替换虚线。这对我来说是必需的,因为我的 csv 文件中的 RS 是换行符。

【问题讨论】:

    标签: shell csv unix


    【解决方案1】:

    我不知道您的回声如何抑制换行符(选项 -n 或以 \c 结尾的字符串)。一个解决方案是当一行不以双引号结尾时,它被认为是不完整的。 您可以将输出重定向到新文件。

    while read line; do
            if [[ "$line" = *\" ]]; then
                    echo "${line}"
            else
                    echo -n "${line}"
            fi
    done < input
    

    【讨论】:

      【解决方案2】:

      你可以试试这个

      sed  '/"[^"][^"]*$/ {
      :again
      N
      s/\n//
      /"[^"][^"]*$/ b again
      }' input_file
      

      /"[^"][^"]*$/ 搜索未终止的报价

      :again - 标签

      N - 追加下一行

      s/\n// - 删除换行符

      /"[^"][^"]*$/ b again - 如果还有未终止的引用则循环

      【讨论】:

        猜你喜欢
        • 2013-09-08
        • 2016-11-14
        • 2020-05-27
        • 2018-07-29
        • 1970-01-01
        • 2014-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多