我想從File1(A,B,C,D)的最後一列旁邊添加特定的列(a,b,c,D) d)。示例輸入和輸出如下所示:Perl:將列從一個文件添加到第二個文件的末尾
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
謝謝你的腳本。輸入文件實際上是相當大的,所以我把它們讀入數組中,然後運行腳本,但輸出不在3列。插入的列將被放置在具有匹配數值的數據下。 – EA00
我意識到我的問題可能措辭不佳,我編輯了示例輸入文件以使其更清晰 – EA00
@ EA00如果您正在將文件讀入陣列,您是否確保「chomp」輸入?文件中的換行符可能是導致您的怪異輸出的原因。 – Zippers