【发布时间】:2019-11-15 10:30:11
【问题描述】:
我有一个 Perl 脚本,它接受逗号分隔的 csv 文件作为输入。 我想丢弃最后一列(列号是预先知道的)。
问题是最后一列可能包含带逗号的引号字符串,在这种情况下我想剪切整个字符串。
例子:
colA,colB,colC
1,2,3
4,5,"6,6"
我想结束的是:
colA,colB
1,2
4,5
我目前的解决方案是通过以下方式使用 Linux cut 命令:
cat $file | cut -d ',' -f 3 --complement
输出如下:
colA,colB
1,2
4,5,6"
除非最后一列是带逗号的带引号的字符串,否则效果很好。
我只能使用原生 Perl/Linux 命令来解决这个问题。
感谢您的帮助
【问题讨论】:
-
如果正确的方法是调用像 cut、sed 或 awk 这样的外部工具,那么 perl 将是一个非常可悲的小工具。