这个perl程序的功能是:
获取第一个参数所指文件的某些域(由第三个参数指定域),合并到第二个参数所指文件的“右侧”。例如:
1.tmp:
111 222 333
1 2 3
2.tmp:
a b c
aa bb cc
那么新文件的内容是(假设第三个参数是2,3,也就是复制第2和第3个域):
a b c 222 333
aa bb cc 2 3
------------------------------------------------------------------
- #!/usr/bin/perl
- if($#ARGV != 2) {
- print "usage: $0 input output fields/n";
- print "examples: $0 1.tmp 2.tmp /"1,2,3/"/n";
- exit(0);
- }
- my @fields = split(/,/, $ARGV[2]);
- open FILE, "$ARGV[0]" or die $!;
- my @lines = <FILE>;
- close FILE;
- open FILE, "$ARGV[1]" or die $!;
- my @new_lines = <FILE>;
- close FILE;
- my $i = 0;
- foreach(@lines){
- my @F = split(//s+/, $_);
- my $line = "";
- foreach(@fields){
- $line .= " $F[$_]";
- }
- chomp($new_lines[$i]);
- $new_lines[$i] .= " $line/n";
- $i++;
- }
- open FILE, ">$ARGV[1]" or die $!;
- print FILE "@new_lines";
- my @new_lines = ;
- close FILE;