LINUX.ORG.RU

вопрос по awk


0

1

всем привет!

появился вопрос - как с помощью awk можно из входных трех строк:

1,2,3,4

a,b,3,4

x,y,z,4

сделать группировку по двум полям (то есть из первых двух строк получить одну новую) и получить на выходе:

1,b,3,4

x,y,z,4


AWK, конечно, крут. Но даже на нем не решить задачу, которую ты по-русски сформулировать не можешь.

ovax ★★★
()

Ну смотри, группировка по одному полю будет выглядеть так:

echo -e '1,2,3,4\na,b,3,4\nx,y,z,4' | awk -F, '{for (i=1; i<=NF; i++) arr[NR, i] = $i} END {for (i=1; i<=NR; i++) for (j=i+1; j<=NR; j++) {for (k=1; k<=NF; k++) if (arr[i, k] == arr[j,k]){ print "stings grouping: " i ", " j ":"; for (n = 1; n <= NF; n++) {if (n==1) {if (n==k) printf("%s", arr[j,n]); else printf("%s", arr[i,n]) } else { if (n==k) printf(",%s", arr[j,n]); else printf(",%s", arr[i,n]) }} print ""; break}}}'

допиши сам

kim-roader ★★
()
Ответ на: комментарий от ovax

Время, отведенное на лабораторную работу, истекло
08.08.2014

???

Stil ★★★★★
()
Ответ на: комментарий от proud_anon

А что должно выдаваться, если на входе будет

a, b, c, d

1, 2, 3, 4

w, x, y, z

?

тогда на выходе все должно быть без изменений

ky4k0b
() автор топика
Ответ на: комментарий от ky4k0b

Текст из методички сюда перепечатай, тогда есть шанс...

g0t0
()
Ответ на: комментарий от ovax

А ты молодец. Мозгов почитать документацию у тебя нет, но все же хватило ума написать на форуме.

anonymous
()
Ответ на: комментарий от anonymous

И ты красавец ! Мозгов посмотреть топик стартера у тебя нет. Но все же хватило ума написать на форуме.

ovax ★★★
()
Ответ на: комментарий от ovax

Ты имеешь что-то против, православное кадило? Топик я смотрел, и уже было хотел ответить, когда тс написал о причине.

anonymous
()
Ответ на: комментарий от anonymous

Против чего, мусульманская подстилка ? Куда ты смотрел ? И что ты там увидел ?

Ты постоянно не в адеквате ? Или упорот ?

ovax ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.