我只是Perl的初学者,在使用Perl脚本过滤列时需要一些帮助.我在文件中有大约10个以逗号分隔的列,我需要在该文件中保留5列并从该文件中删除所有其他列.我们如何实现这一目标?
非常感谢任何人的帮助.
欢呼,尼尔
Pau*_*lin 20
看看Text :: CSV(或Text :: CSV_XS)来解析Perl中的CSV文件.它可以在CPAN上使用,或者你可以通过你的包管理器获得它,如果你使用的是Linux或其他类Unix操作系统.在Ubuntu中,该包称为libtext-csv-perl.
它可以处理引用的字段之类的情况,因为它们包含逗号,这是简单的拆分命令无法处理的.
使用split将线拉开然后输出您想要的线(比如每隔一列),创建以下xx.pl文件:
while(<STDIN>) {
chomp;
@fields = split (",",$_);
print "$fields[1],$fields[3],$fields[5],$fields[7],$fields[9]\n"
}
Run Code Online (Sandbox Code Playgroud)
然后执行:
$ echo 1,2,3,4,5,6,7,8,9,10 | perl xx.pl
2,4,6,8,10
Run Code Online (Sandbox Code Playgroud)