如何使用Perl删除csv中的额外逗号

时间:2015-05-21 18:28:47

标签: perl

我之前用sed做过这个,但我想知道Perl是如何做到的。 我有一个CSV文件,如下所示:

IFB, Northpole, Alaska, 907-555-5555,,,,
Walmart, Fairbanks, Alaska,,,,,
Chicken, Anchorage, Alaska, 907-555-5555,,,,,
Beef, Somewhere,,,,, Over the Rainbow,,,907-555-5555
etc...

我需要的是删除多余的逗号,而不是分隔值的单个逗号。这意味着我需要删除任何超过1个逗号的出现,无论它出现在文件中的哪个位置 期望的输出:

IFB, Northpole, Alaska, 907-555-5555
Walmart, Fairbanks, Alaska
Chicken, Anchorage, Alaska, 907-555-5555
Beef, Somewhere, Over the Rainbow, 907-555-5555

1 个答案:

答案 0 :(得分:0)

这是一个例子:

select()

您还可以将#!/usr/bin/env perl use strict; while(<DATA>) { s/,+[\t ]*/, /g; # Remove extra commas s/ $//g; # Remove trailing space print; } __DATA__ IFB, Northpole, Alaska, 907-555-5555,,,, Walmart, Fairbanks, Alaska,,,,, Chicken, Anchorage, Alaska, 907-555-5555,,,,, Beef, Somewhere,,,,,Over the Rainbow,,,907-555-5555 etc... sed一起使用Perl:

perl -pe