最近一直在学习PERL的文本处理,今天在CU上遇到一个问题,练习了一下,结果没搞定...
while(<DATA>){
if($.==1){
chomp;
%tab=();
@b=map{((++$tab{$_}) ==2)?($_.$tab{$_}):($_)} split(/\s+/,$_);
print "@b\n";
}else{
s/"(.*?)"/\1/g;
print;
}
}
__DATA__
Column1 Column2 Column3 Column4 Column3 Colum5
Data Data "Data" Data "Data" Data
要求把第一行的重复的列在后面加上字符串2
把第其他行的引号去掉,以上是我写的大概的方法,我只想学习下而已,有很多的地方存在不足,特记录下。
@b=map{($tab{$_}++)?($_.$tab{$_}):($_)} split(/\s+/,$_);
以上是纠结我很久的一个地方,最后发贴才明白过来,很惭愧。