我有一个单列文本文件,如:
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脚本编写?
答案 0 :(得分:0)
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;
}