LINUX.ORG.RU

Объединить ячейки соседних строк по общему значению первой ячейки

 , ,


0

2

Доброй ночи, уважаемые форумчане! Возможно ли реализовать с помощью gawk преобразование таблицы 1:

a	b	c	d
a	e	f	g
b	h	i	j
a	k	l	m
c	n	o	p
в таблицу 2 вида:
a	b;e	c;f	d;g
b	h	i	j
a	k	l	m
c	n	o	p

Условие: если ячейка A(i)=A(i+1), то:

B(i)=B(i);B(i+1)
C(i)=C(i);C(i+1)
...
NF(i)=NF(i);NF(i+1)

Что-то мысля крутится вокруг да около, а подход никак не могу найти.


Да, и еще, чтобы получить таблицу 2, нижние строки не забыть при этом удалять.

xseed
() автор топика

вот как,gawk уже редактором электронных таблиц стал?

darkenshvein ★★★★★
()
awk 'a {if ($1 == f[1]) {print a, $0; a=""; next} else {print a}} {a = $0; split($0,f)} END {if (a) print a}'

print a, $0 --> заменить по вкусу

anonymous
()
Ответ на: комментарий от anonymous
C:\nncron>getclip | gawk -F\x09 "a {if ($1 == f[1]) {print a, $0; a=\"\"; next}
else {print a}} {a = $0; split($0,f)} END {if (a) print a}"
a       b       c       d a     e       f       g
b       h       i       j
a       k       l       m
c       n       o       p

Пока не получается. Но все равно спасибо за наводку на путь истинный.

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