Portál AbcLinuxu, 10. května 2025 16:54

Dotaz: sed vyhledani,prepsani multiradek

20.3.2018 15:16 kukin
sed vyhledani,prepsani multiradek
Přečteno: 222×
Odpovědět | Admin
Ahoj, mohl by mi prosim nekdo poradit, jak napsat sed, ktery:

* prohleda spoubor, ktery ma strukturu typu
[foo:bar]
first = 1
second = Int
[foo]
third = String
[example.com]
lastone = True
* v sekci [foo:bar], pokud existuje, hleda first parametr, pokud existuje a doplni/prepise hodnoty

* pokud sekce [foo:bar] neexistuje, vytvori ji, pokud parametr v sekci neexistuje, vytvori ho vcetne hodnoty

Input pak pro me bude [foo:bar], second = String nebo napriklad [missing], 4th = False

Existuje na toto jednoduche reseni, jsem omezen jen na sh a par nastroju. Takze zadne rozsahlejsi scriptovani bohuzel neni mozne.

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

Odpovědi

20.3.2018 18:17 NN
Rozbalit Rozbalit vše Re: sed vyhledani,prepsani multiradek
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jaky presne shell a nastroje mas k dispozici? Tohle je na sed trochu moc, awk neni? Neco kde se da skriptovat.. Co je to ve skutecnosti za konfiguracni soubor, co resis za problem? Nedalo by se to vyresit jinak?
20.3.2018 19:33 kukin
Rozbalit Rozbalit vše Re: sed vyhledani,prepsani multiradek
sh (mozna bude i bash) a awk mam take k dispozici, on mozna dalsi problem bude, jestli to vubec pujde napsat jako oneliner, protoze muliradek mi to urcite nevezme, vzhledem k povaze. Potrebuju to zadat v CLI k programu, ktery kouka na hostovsky OS, (container) se znacne osekanym OS. Customizace je v tomhle pripade nulova.
20.3.2018 21:10 NN
Rozbalit Rozbalit vše Re: sed vyhledani,prepsani multiradek
problem bude, jestli to vubec pujde napsat jako oneliner, protoze muliradek mi to urcite nevezme, vzhledem k povaze.
What? Co je nalinkovane na sh? Neni to busybox? Je vubec nutne to automatizovat? Je to CLI ceho konkretne? Pripojujes se pres SSH? Musi to byt inline, nelze editovat subor rucne?
20.3.2018 19:29 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: sed vyhledani,prepsani multiradek
Odpovědět | | Sbalit | Link | Blokovat | Admin
Smazat celou původní sekci [foo:bar] (pokud tam je) a místo ní tam zapsat novou, s novými hodnotami.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
20.3.2018 19:53 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: sed vyhledani,prepsani multiradek
Odpovědět | | Sbalit | Link | Blokovat | Admin
Read and Write .ini Files in Bash
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
20.3.2018 21:13 mates
Rozbalit Rozbalit vše Re: sed vyhledani,prepsani multiradek
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zadání sice rozumim jen napůl, ale možná něco na tenhle způsob:
sed -r '/^\[foo:bar\]/,/^\[/{/first/{s/(first =).*/\1 5/;:a;N;$!ba;p;d};/\[foo:bar\]/!{/\[.*/{s/\[.*/first = 8\n&/;:c;N;$!bc;p;d}}}; $a [foo:bar]\nfirst=10'

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.