【发布时间】:2015-05-29 05:05:25
【问题描述】:
我想在 File2 的最后一列 (a,b,c,d) 旁边添加来自 File1 (A,B,C,D) 的特定列。示例输入和输出如下所示:
Input File1:
1 A
2 B
3 C
4 D
Input File2:
11 a
12 b
13 c
14 d
Output:
11 a A
12 b B
13 c C
14 d D
这是我的代码,我无法指定替换正则表达式。也许有更好的方法可以一起完成这一切?
#!/usr/bin/perl
my $text = 'file1.txt';
my $column = 'file2.txt';
open IN, '<', $column or die "Can't open '$column' $!";
open TEXT, '<', $text or die "Can't open '$text' $!";
open OUT, '>>', 'output.txt' or die "Can't open 'output.txt' $!";
my @ref = <IN>;
while ( my $line = <TEXT> ) {
$line =~ s/\s+$/$ref[1]/s;
print OUT $line;
}
更新:无法用 perl 解决。改用 awk:
awk -v f2=file2.txt ' { c = $2; getline < f2; print $0, c; } ' file1.txt > output.txt
【问题讨论】:
标签: perl substitution