删除制表符、换行符、回车符,直到遇到字符

删除制表符、换行符、回车符,直到遇到字符

我有一个 CSV 文件,其记录分隔符为,\n.其中一列可能包含我希望删除的选项卡和新行。如何使用和/或删除这些字符 ( \t\n\r) ,直到遇到记录分隔符?sedawk

答案1

干得好:

cat input_file | tr -d '\r\t' | sed ': loop_start; /,$/b; N; s/\n//; b loop_start'

解释:

  1. tr用于删除( -d)所有\r\t字符。
  2. 然后 sed 循环 ( : loop_start; ...; b loop_start) 和
  3. 连接所有行 ( N) 并
  4. 删除换行符 ( s/\n//)
  5. 直到找到记录分隔符 ( /,$/) 并
  6. 分支到脚本的末尾 ( b),它将使用下一行输入重新开始脚本。

相关内容