我正在寻找可以将我的 bcp 文件转换为 csv 文件的任何已知工具或脚本。
输入 bcp 文件格式:
- 由“XXXXXXX”分隔的字段
- 由 'YYYYYY' 分隔的行
- 字段包含特殊字符,如 CRLF、CR、LF、"、制表符、逗号等...
我想要的输出格式:
- 用逗号分隔的标准 csv 格式文件
- 字段值应包含包含特殊字符的原始内容(我的意思是不添加或删除特殊字符,CR也不应删除)
- 该文件能够按列索引/名称剪切以选择感兴趣的列。
为此,我做了以下事情:
使用少量 sed 命令将 bcp 文件转换为 csv,这样我可以在 MS excel 程序中以正确对齐方式打开文件,并且可以看到内容没有改变(如预期的那样)。
sed -i 's/\"/\"\"/g' $inFile
sed -i 's/XXXXXXX/","/g' $inFile
sed -i 's/YYYYYYY/"\n"/g' $inFile
sed -i '1s/^/\"/' $inFile
sed -i '$s/\"//' $inFile
sed -i -e '${/^$/d}' $inFile
sed -i '1s/^/"Header","added","here"\n/' $inFile
尝试过 csvkit 工具:
csvcut $infile
此工具正在选择首选列,但会修改内容,例如删除 CR。
这种转换有什么想法吗?