用perl实现两个文本文件交叉合并
来源:互联网 发布:程序员高清logo 编辑:程序博客网 时间:2024/06/15 02:14
perl语言被某些爱好者称作“Unix 中的王牌工具”。确实,和C/C++相比,Perl语言特别是在处理文本和文件方面,有一些独到的优势,在处理某些文本文件任务时,真的是很方便的。
比如下面这个问题:
现在两个文本文件a.txt和b.txt,内容如下:
a.txt:
a
b
c
d
e
f
g
b.txt:
1
2
3
4
5
6
7
我怎样能生成一个新文件(c.txt),内容如下:
c.txt:
a
1
b
2
c
3
d
4
e
5
f
6
g
7
简单说就是要完成两个文本文件的交叉合并。
如果想用C/C++实现,实现应该是比较复杂的,需要使用不少字符串处理函数,以及文件指针操作,所以我个人认为还是比较复杂的。
如果想比较简单地解决这种问题,就需要找到一种“处理字符串和文本方面比较有优势”的语言,在这方面,被称为“软件芯片”的perl语言就属于其中之一,只需要知道它怎么控制文件句柄,就能个比较简单地实现了,不多说了,直接看实现代码:
#! /usr/bin/perl -w #本地的perl编译器路径
use strict; #开启语法检测
use 5.010; #使用5.10版本
my $name_1 = $ARGV[0];
my $name_2 = $ARGV[1]; #得到命令行参数
#open the ori perlterm script
open TXT_1, "<$name_1";
open TXT_2, "<$name_2"; #得到两个文件句柄
my @a = <TXT_1>;
my @b = <TXT_2>; #得到两个文件内容
my $line_b = @b; #b.txt文件内容传递
my $count_line = 0; #初始化文件行数
open my $newfile, ">", "c.txt"; #创建升成的新文件和句柄
foreach (@a){ #循环开始交叉合并
chomp;
print $newfile "$_\n";
if ($count_line <= $line_b){
print $newfile "$b[$count_line]\n";
$count_line+=1;
}
}
close $newfile or warn "can not close the file";#合并结束,关闭
保存为merge.pl并退出,这样就OK啦!运行结果如下:
a.txt:
a
b
c
d
e
f
g
b.txt:
1
2
3
4
5
6
7
c.txt:
a
1
b
2
c
3
d
4
e
5
f
6
g
7
不到30行,就搞定了。
- 用perl实现两个文本文件交叉合并
- linux合并两个文本文件
- 如何实现两个字符串的交叉合并功能java实现
- 合并两个文本文件的内容
- C#实现文本文件合并
- C#实现文本文件合并
- 求两个文本文件中的交叉项
- Dos命令将两个文本文件内容合并
- C#实现文本文件合并 _17
- Python实现文本文件的合并
- 两个List合并实现
- 使用python实现文本文件合并功能
- 在windows命令行(cmd)下,如何合并两个文本文件
- Perl 字符替换操作-用于两个文件的合并
- 5,两个不交叉的有序链表的合并
- 合并两个有序链表(非交叉)
- 5两个不交叉的有序链表的合并
- 合并两个有序的链表(非交叉)
- c++虚函数、多态性与虚表
- struts2常用常量总结
- Vuforia开发技巧-用手指拖拽Augmented模型
- 1053. Path of Equal Weight (30)
- OpenWRT定制按键功能
- 用perl实现两个文本文件交叉合并
- 如何快速输入测试用例
- Gulp折腾记 - (1)简易入门篇
- Python核心概念之数据模型和执行模型
- 剑指offer——反转链表
- safari 插件(如Xmarks)的设置、登陆、禁用等
- 用java写的远程监控程序
- 小晴天老师系列--我有一个数列!(暴力)
- android绑定Service(含IPC)