Portál AbcLinuxu, 8. května 2025 18:24

Dotaz: Seskupení seznamu - sed? awk?

14.7.2014 22:26 JanM | skóre: 28
Seskupení seznamu - sed? awk?
Přečteno: 162×
Odpovědět | Admin
Zdravím,

rád bych následující seznam v input.txt:
Item 1\tDesc 1
Item 1\tDesc 2
Item 1\tDesc 3
Item 2\tDesc 1
Item 2\tDesc 2
Item 3\tDesc 1
kde \t značí znak tabelátoru, dostal do následující podoby:
Item 1
\t001\tDesc 1
\t002\tDesc 2
\t003\tDesc 3
Item 2
\t004\tDesc 1
\t005\tDesc 2
Item 3
\t006\tDesc 1
Ideálně pomocí sed, ale nebránil bych se ani jiné utilitě či jejich kombinaci použitelné v bash skriptu. A kdyby to byl one-liner, tak by to bylo ještě lepší ;-)

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

14.7.2014 23:14 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Seskupení seznamu - sed? awk?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tady se asi bude hodit awk:
awk -F"\t" '{if(t1!=$1) print $1; t1=$1; printf("\t%03d\t%s\n", NR, $2)}' <input.txt
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
15.7.2014 09:18 JanM | skóre: 28
Rozbalit Rozbalit vše Re: Seskupení seznamu - sed? awk?
Krásná práce, děkuji.

A zvídavost mi nedá: co nějaký sed'ař, nenašel by se?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.