Создать массив в файле данных, в то время как значение в определенном столбце является постоянным

У меня есть следующий набор данных:

M1  1   1233
M2  1   3212
M3  1   55323
M4  1   4444233
M5  1   23444
M6  1   555333
M7  1   55567
M8  2   22224
M9  2   55566
M10 2   4567
M11 3   44242
M12 3   234234
M13 4   2233
M14 4   2442
M15 4   322352
M16 4   235242
M17 4   2324524
M18 5   232342
M19 6   2322523
M20 6   2332523

, и я хочу создать массив на основе значений второго столбца. Я хочу применить другие команды во всех строках, которые имеют только 1 во втором столбце, после в строках, которые имеют 2 во втором столбце и т. Д., И сохранить это в разных файлах, но я не знаю, как это сделать это. Я пытался использовать команду while, но все мои попытки провалились.

Выходные данные этого кода должны быть подмножествами исходного файла в каждом индексе массива, например:

индекс i1:

M1  1   1233
M2  1   3212
M3  1   55323
M4  1   4444233
M5  1   23444
M6  1   555333
M7  1   55567

индекс i2:

M8  2   22224
M9  2   55566
M10 2   4567

и т. Д. До

индекс i6:

M19 6   2322523
M20 6   2332523

Вы можете мне помочь? Заранее спасибо.

-1
задан 14 July 2019 в 23:39

1 ответ

Если я понимаю требование правильно, что-то примерно как это должно работать:

data="M1  1   1233
M2  1   3212
M3  1   55323
M4  1   4444233
M5  1   23444
M6  1   555333
M7  1   55567
M8  2   22224
M9  2   55566
M10 2   4567
M11 3   44242
M12 3   234234
M13 4   2233
M14 4   2442
M15 4   322352
M16 4   235242
M17 4   2324524
M18 5   232342
M19 6   2322523
M20 6   2332523
"
echo "$data" | while read ln; do
    set -- $ln
    echo $ln >> i$2
done
0
ответ дан 23 October 2019 в 23:46

Другие вопросы по тегам:

Похожие вопросы: