regex - 使用命令行,我如何得到每种类型的 n 个可能结果?

标签 regex linux unix awk sed

假设我在商店里有货架,每个货架有 0-9 个特定种类的盒子。我想从每个货架上选择不超过 4 个盒子,直到我总共有 15 个。如何编写命令行代码,其中输入文件类似于

AA123 small
AA124 small
AA122 small
BB345 medium
..
..
100s of such

前 2 个字母定义货架,数字表示货架上的箱子编号。

为了找到独特的货架,我可以使用

cat filename | awk '{print $1}' | cut -c 1-2 | sort | uniq | xargs

然后我试图将其用作 for/while 循环的输入但卡住了。

最佳答案

我认为 awk 是正确的工具。

下面的一行打印了 shelf 的前四次出现,总共只有 15 次:

awk 'a[substr($1,1,2)]++ < 4 {if (t++>14) exit; print}' file

关于regex - 使用命令行,我如何得到每种类型的 n 个可能结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23978451/

相关文章:

c - 使用写入将整数写入文件描述符?

php - 在同一字符串中用连字符替换逗号或空格

regex - 将列拆分为多列 R

python - 使用多个定界符拆分字符串

python - 使用 Python 比较目录和文本文件

perl - 如何拆分一条线并重新排列其元素?

regex - Perl - 无法去除空行

c 编程 - Mandelbrot 集

c - 如何运行另一个程序,通过 stdin 传递数据,并在 Linux 中获取其 stdout 输出?

c++ - 将 .a 文件转换为 .dll