Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Peterx 24 Únor 2020, 20:45:36

Název: Bash - potvrdenie, alebo zmena textu v subore
Přispěvatel: Peterx 24 Únor 2020, 20:45:36
Ahoj,

Mam textovy subor (konfiguracny) ktory vyzera nejako takto, samozrejme s inymi hodnotami:
Umiestnenie:Bratislava
Uzivatel:Ferko
Defaultna stranka:http://nieco.sk
Farba:cervena
ID:58

Vzdy ked sa nieco na pocitaci meni, zeditujem tento textak. Pouzivam ho ako zdrojovy subor pre ine skripty.

Rozmyslal som ci by sa nedal spravit nejaky skript v bashi, ktory riadok po riadku zacne subor citat a zobrazi napr Umiestnenie:Bratislava.
Ja dam ENTER a ide sa na dalsi riadok, alebo napisem Kosice dam ENTER, v textovom subore sa zmeni Bratislava na Kosice a pokracujeme tak isto s dalsim riadkom.

Je vobec nieco taketo mozne v bashi?
Název: Re:Bash - potvrdenie, alebo zmena textu v subore
Přispěvatel: juwa2 24 Únor 2020, 21:30:50
https://www.google.com/search?q=ubuntu+read+text+file+line+by+line&oq=ubuntu+read+txt+file+&aqs=chrome.2.69i57j0l5.13315j0j1&sourceid=chrome&ie=UTF-8
Název: Re:Bash - potvrdenie, alebo zmena textu v subore
Přispěvatel: singularis 25 Únor 2020, 18:22:46
Toto je poměrně jednoduchá úloha, bash toho umí mnohem víc...

Jedno z možných řešení vypadá takto:
Kód: [Vybrat]
#!/bin/bash
exec 3<stary.cfg 4>novy.cfg
while IFS=':' read -u 3 A B
do
        echo "$A:$B"
        read X || exit $?
        if test -z "$X"
        then
                echo "$A:$B" >&4
        else
                echo "$A:$X" >&4
        fi
done
exec 3<&- 4>&-
mv -v novy.cfg stary.cfg

Jde to i trochu jinak, ale snažil/a jsem se, aby to nebylo moc matoucí. (Mimochodem, uvedený skript očekává konfigurační soubor jako „stary.cfg“ a potřebuje si vytvořit dočasný „novy.cfg“.)
Název: Re:Bash - potvrdenie, alebo zmena textu v subore
Přispěvatel: Peterx 27 Únor 2020, 18:00:24
Dík za odpoveď a usmernenie, odskúšam a naštudujem to čím skôr.