即perl script.pl“,”3“|” data.txt中
将用管道替换每个第3,第6,第9 ……等逗号.
因此,如果在脚本运行之前data.txt具有以下内容:
fd,3232,gfd67gf,peas,989767,jkdfnfgjhf,dhdhJsk,267,ujfdsy,fuyds,637296,ldosi,fduy,873,fuisouyd,trysave,2837,ipoi
它应该在脚本运行后具有此功能:
fd,gfd67gf|peas,jkdfnfgjhf|dhdhJsk,ujfdsy|fuyds,ldosi|fduy,fuisouyd|trysave,ipoi解决方法 小perl Hack解决问题.使用索引函数查找逗号,模块替换正确的模块,使用substr执行替换.
use strict;use warnings;while (<>) { my $x=index($_,","); my $i = 0; while ($x != -1) { $i++; unless ($i % 3) { $_ = substr($_,$x) ."|". substr($_,$x+1); } $x = index($_,$x + 1) } print;}
使用perl script.pl file.csv运行.
注意:您可以在while(<>)循环之前放置声明my $i,以便进行全局计数,而不是每行的单独计数.我不太清楚我在这方面理解你的问题.
总结以上是内存溢出为你收集整理的linux – perl – 用另一个字符替换每个第n个(和多个)字符的出现次数全部内容,希望文章能够帮你解决linux – perl – 用另一个字符替换每个第n个(和多个)字符的出现次数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)