У меня есть следующий набор данных:
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
Вы можете мне помочь? Заранее спасибо.
Если я понимаю требование правильно, что-то примерно как это должно работать:
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