linux - 根据重复行值拆分文本文件的内容

标签 linux split text-processing

我有一个单列文本文件,例如:

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/

相关文章:

php - linux php 7 configure : error: Please reinstall readline - I cannot find readline. h,但它已安装

java - 用相等的字符拆分字符串

c++ - 模板类成员函数的特化 - 在 Linux 上使用 g++-4.7

linux - 查找在日期范围之间创建的文件

sql-server - SQL Server 拆分和表插入

c# - 如何将 mp3 文件拆分成更小的文件?

java - 查找具有不同长度的特征向量的相似性度量

python - 将所有 nlp 实体提取到另一列

python - 模糊正则表达式、文本处理、词法分析?

php - 如何将动态子域别名与 apache 服务器上的子文件夹匹配