首页 > 解决方案 > Bash 中的类分配

问题描述

我有一个难题,我陷入了困境。问题是闲散的:我有一个从 103 到 17431 的数字列表“A”。示例:

103
104
105
......
17430
17431

现在这个列表的一部分将进入圆顶类。举个例子

Class 0

104
156
1114
11456

Class 1

1313
17431

etc

列表 A 中的相同数字在他的列表和班级中是唯一的。没有 2 个类包含列表 A 中的相同编号。我需要以 csv 格式输出列表 B,第一列是类,第二列是列表 A 中的对应编号。

最明显的方法是为列表 A 中的每个条目创建一组“if/then/else/else if”循环,但效率不高。有人可以帮助我提供更智能的解决方案吗?谢谢你。

标签: bash

解决方案


Perl中有这样的东西吗?

$ cat foo.txt
Class 0

104
156
1114
11456

Class 1

1313
17431

$ perl -nle '$class = $1 if /^Class (\d+)$/; print "$class,$_" if /^\d+$/' foo.txt
0,104
0,156
0,1114
0,11456
1,1313
1,17431

推荐阅读