perl处理文本经验积累(不断更新中)

本文介绍了Perl处理文本的多个实用技巧,包括合并同名文件、获取当前目录文件名、去除行首标号、从文件中提取特定内容、随机化文件行顺序、逐行读取文件及非贪婪匹配等。示例代码详实,适合Perl初学者参考。
摘要由CSDN通过智能技术生成

1. 把同根路径不同文件包中同名的文件合并

 例子:

 作用描述:  问题:
现有五个目录 分别存放5个领域的文件
F:/.../fold/canyin/sys
F:/.../fold/jiaotong/sys
F:/.../fold/lvyou/sys
F:/.../fold/shangwu/sys
F:/.../fold/tiyu/sys

而每个
F:/.../fold/xxx/sys目录
下面有
18个文件:
text(0).txt
text(1).txt
....
text(16).txt
text(17).txt

想把五个领域目录下的文件名相同的文件合并成一个文件

比如:
all_text(0).txt = 
(F:/.../fold/canyin/sys/text(0).txt) 
+ (F:/.../fold/jiaotong/sys/text(0).txt)
+ (F:/.../fold/lvyou/sys/text(0).txt) 
+ (F:/.../fold/shangwu/sys/text(0).txt)
+ (F:/.../fold/tiyu/sys/text(0).txt)
这里的'+' 表示文件合并的意思
即后面处于不同目录下面的五个同名文件将被合并到all_text(0).txt文件中

#!
@person=qw(canyin jiaotong lvyou shangwu tiyu);
for($i=0;$i<18;$i++) {
        $src=join('+',map{$_."//sys//test_part_result_by_index($i).txt"} @person);
        print $src ,"/n";
        system("copy $src fold1_all_text($i).txt");
}

2. 简易获取当前目录下所有文件名

 一般是用CWD模块,下面这个更简洁

#!
#####
#给目录下面的文件改名字
while($file=glob('*.txt')) {#glob 取得当前目录下的文件名
        print "$file/n";
        $newfile = "canyin_".$file;
        rename($file,$newfile);
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值