Portál AbcLinuxu, 26. dubna 2024 17:51


Dotaz: zarazeni noveho zaznamu so seznamu podle abecedy

25.3.2009 15:19 David | skóre: 21 | Praha
zarazeni noveho zaznamu so seznamu podle abecedy
Přečteno: 256×
Odpovědět | Admin

Ahoj,

mam soubor, kde jsou radky typu:

zone "arabianspecialevents.com" {
                        type master;
                        file "arabianspecialevents.com";
                };

zone "arbesovka.cz" {
                        type master;
                        file "arbesovka.cz";
                };

zone "arcadea.cz" {
                        type master;
                        file "arcadea.cz";
                };
 

Potrebuji v bashi pridat zaznam

zone "arbesovka2.cz" {
                        type master;
                        file "arbesovka.cz";
                };

(arbesovka2.cz), tak aby byla zachovana abeceda, tedy mezi zaznamy arbesovka.cz a arcadea.cz. Jak na to? Predem dekuju.

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

Odpovědi

25.3.2009 15:28 tyctor | skóre: 13
Rozbalit Rozbalit vše Re: zarazeni noveho zaznamu so seznamu podle abecedy
Odpovědět | | Sbalit | Link | Blokovat | Admin

najjednoduhsie pomocou editora ;-) (napr. vim)

25.3.2009 15:36 David | skóre: 21 | Praha
Rozbalit Rozbalit vše Re: zarazeni noveho zaznamu so seznamu podle abecedy

:( za tuhle odpoved nemuzu ani podekovat............

25.3.2009 16:02 tyctor | skóre: 13
Rozbalit Rozbalit vše Re: zarazeni noveho zaznamu so seznamu podle abecedy

v bashi si spustite vim a pridate ten zaznam...

alebo je tych zaznamov velke mnozstvo a chcete to riesit automaticky?

25.3.2009 16:50 Ash | skóre: 53
Rozbalit Rozbalit vše Re: zarazeni noveho zaznamu so seznamu podle abecedy
automaticky by to šlo i tím vimem, žejo ;)
26.3.2009 14:48 David | skóre: 21 | Praha
Rozbalit Rozbalit vše Re: zarazeni noveho zaznamu so seznamu podle abecedy

OMFG, sekce programovani, tak nevim proc me tu otravujete s vimem?!

 

11.4.2009 18:10 Ash | skóre: 53
Rozbalit Rozbalit vše Re: zarazeni noveho zaznamu so seznamu podle abecedy
Protože opravdový programátor nedělá rozdíl mezi cat, tr, echo, sed, vim či ed, protože tím vším a jejich kombinacemi můžete v shellu upravit soubor dle vašich požadavků. Asi nevíte že vim lze použít podobně jako sed, tak vás o tom tímto informuji, nejde o žádné otravování vaší velebnosti. Ale račte použít co považujete za vhodné, vůbec vám vim, sed, ani ed či sort necpu.
12.4.2009 17:09 David | skóre: 21 | Praha
Rozbalit Rozbalit vše Re: zarazeni noveho zaznamu so seznamu podle abecedy

Mate pravdu. Vim je mocny nastroj a da se pouzit lehce i ve skriptu. Nenapadlo me to. "Opravdovy" programator nejsem, jen si skriptenim ulehcuji praci.

25.3.2009 16:33 marek
Rozbalit Rozbalit vše Re: zarazeni noveho zaznamu so seznamu podle abecedy
Odpovědět | | Sbalit | Link | Blokovat | Admin

dobry den.

 (cat soubor; echo 'zone "arbesovka2.cz" {
                        type master;
                        file "arbesovka.cz";
                };') | tr -d "\t\n " | sed -e's/;zone/;\nzone/g' |sort | sed -e 's/zone"\([^"]\+\)"{typemaster;file"\([^"]\+\)";};/zone "\1" \{\n                        type master;\n                        file "\2";\n                \};\n/ p' -ed

 

 

marek

26.3.2009 12:47 David | skóre: 21 | Praha
Rozbalit Rozbalit vše Re: zarazeni noveho zaznamu so seznamu podle abecedy

Perfektni......moc dekuju. Dat to na radky, sesortit a pak vratit ;)

26.3.2009 12:52 cronin | skóre: 49
Rozbalit Rozbalit vše Re: zarazeni noveho zaznamu so seznamu podle abecedy
Tak tak, tzv. filozoficky krok stranou. :-D
26.3.2009 13:09 l4m4
Rozbalit Rozbalit vše Re: zarazeni noveho zaznamu so seznamu podle abecedy
No, nevím. Takové řešení bere jen velmi fixní formát a brzy se rozbije.

Matchoval bych to benevolentně jedním reguláním výrazem:
{ cat STARÝ_SOUBOR; echo NOVÝ_ZÁZNAM; } \
 | python -c $'import re,sys\nprint \'\\n\'.join(sorted(re.findall(r\'(?ms)^zone .*?\\};\',sys.stdin.read())))'
Resp. to napsal v pythonu celé...
26.3.2009 14:46 David | skóre: 21 | Praha
Rozbalit Rozbalit vše Re: zarazeni noveho zaznamu so seznamu podle abecedy

To sice souhlasim, ale do souboru bude sahat akorat ten skript, takze format zustane nezmenen.  A v pythonu to psat nebudu.

 

26.3.2009 14:55 l4m4
Rozbalit Rozbalit vše Re: zarazeni noveho zaznamu so seznamu podle abecedy
do souboru bude sahat akorat ten skript, takze format zustane nezmenen

Slavná poslední slova...
26.3.2009 15:00 David | skóre: 21 | Praha
Rozbalit Rozbalit vše Re: zarazeni noveho zaznamu so seznamu podle abecedy

FU......nicmene zapomnel sem podekovat za puvodni prispevek, ktery byl alespon k veci. Takze dodatecne, dik.

 

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.