我有一个单列文本文件,例如:
A.txt
0;
1;
2;
3;
.
.
.
0;
4;
8;
.
.
.
0;
6;
9;
目标是根据行的值将 A.txt 拆分为文件,对于在 A.txt 中多次出现的每个行值,必须基于此进行单独的拆分。以下是所需输出文件的示例,假设“0;”是 A.txt 中唯一的重复元素:
A1.txt
0;
1;
2;
3;
.
.
.
A2.txt
0;
4;
8;
.
.
.
A3.txt
0;
6;
9;
.
.
.
知道如何通过 Linux bash 脚本实现这一点吗?
最佳答案
Perl 来救援:
#!/usr/bin/perl
use warnings;
use strict;
my @lines = <>;
chomp @lines;
my %count;
$count{$_}++ for @lines;
my $OUT;
my $x;
for my $separator (grep $count{$_} > 1, keys %count) {
for my $line (@lines) {
open $OUT, '>', 'A' . ++$x . '.txt' or die $!
if not $OUT or $separator eq $line;
print {$OUT} "$line\n";
}
undef $OUT;
}
关于linux - 根据重复行值拆分文本文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23373710/