我的文本文件包含以下内容:
COcoNut,Other,900,21_7_2011,Coimbatore,TEINGKAAY
CotTon,Others,3500,21_7_2011,Coimbatore,PARUTTI
Maize,Others,1200,21_7_2011,Coimbatore,MAKKAACHOOLAM
Bajra,Other,1325,14_7_2011,Coimbatore,KAMBU
Jowar,Other,2750,14_7_2011,Coimbatore,CHOOLAM
Ragi,Other,910,14_7_2011,Coimbatore,KEIZHVARAKU
Coconut,Grade_I,650,12_7_2011,Coimbatore,TEINGKAAY GRADE ONNU
Copra,other,5300,7_7_2011,Coimbatore,KOPPARAI
Paddy,ADT_______36,950,15_7_2011,Madurai,NELLU ADT MUPPATTI AARU
Paddy,AST_16,950,15_7_2011,Madurai,NELLU AST PATINAARU
在这里,我有COcoNut,cotTon JOWar等。但我想打印像椰子,棉花,Jowar,即第一个字母应该是大写而不是使用perl中的正则表达而不是任何包....
而且你也看过'其他',但我只希望文本文件中有'其他'。这也加上了上面的表达。
然后,这个文本文件将读取和写入相同的文件,即在perl脚本中覆盖该文件
请任何人建议我
答案 0 :(得分:3)
#!/usr/bin/perl
use strict;
use warnings;
use IO::InSitu;
my ( $in, $out ) = open_rw ( '/path/to/file' );
my $separator = ',';
while ( <$in> ) {
my @fields = split ( $separator => $_ );
$fields[ 0 ] = ucfirst lc $fields[ 0 ];
$fields[ 1 ] =~ s/(?<=other)s//gi;
print { $out } join ( $separator => @fields ) . "\n";
}
答案 1 :(得分:2)
s/^([^,]*)/\u\L$1/;s/,Others,/,Other,/;