我正在尝试编写一个代码,从文件 A 中提取数据并仅将具有指定起点和终点的列数据粘贴到文件 B 中。到目前为止,我只能成功地将所有数据从 A 复制到 B - 但不是通过过滤列得到任何地方。我试过研究 splice 和 grep 无济于事。没有Perl经验。数据没有列标题。示例:数据实际上长达数千行 - 无法将数据插入函数
1. AAA 565 u8y 221
2. ABC 454 9u8 352
3. ADH 115 i98 544
4. AKS 352 87y 454
5. GJS 154 i9k 141
我希望将第 3 列(开始:8 长度:3)的所有唯一值复制到文件 B 中。我已经尝试了如何在 Perl 中提取特定数据列中提供的解决方案?无济于事。
感谢您提供任何提示或帮助!
#!/usr/bin/perl
use strict;
use warnings;
#use Cwd qw(abs_path);
#my $dir = '/home/
#$dir = abd_path($dir);
my $filename = "filea.txt";
my $newfilename = "fileb.txt";
#Open file to read raw data
open (DATA1, "<$filename") or die "Couldn't open $filename: $!";
#Open new file to copy desired columns
open (DATA2, ">$newfilename") or die "Couldn't open $newfilename: $!";
#Copy data from original to new file
while (<DATA1>) {
#DATA2=splice(DATA1, 0,5);
print DATA2 $_;
my @fifth_column = map{(split)[1]} split /\n/, $newfilename;
}