Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.

Autor Téma: Bash - potvrdenie, alebo zmena textu v subore  (Přečteno 1038 krát)

Peterx

  • Člen
  • **
  • Příspěvků: 403
    • Zobrazit profil
Bash - potvrdenie, alebo zmena textu v subore
« kdy: 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?


singularis

  • Návštěvník
  • *
  • Příspěvků: 80
    • Zobrazit profil
Re:Bash - potvrdenie, alebo zmena textu v subore
« Odpověď #2 kdy: 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“.)

Peterx

  • Člen
  • **
  • Příspěvků: 403
    • Zobrazit profil
Re:Bash - potvrdenie, alebo zmena textu v subore
« Odpověď #3 kdy: 27 Únor 2020, 18:00:24 »
Dík za odpoveď a usmernenie, odskúšam a naštudujem to čím skôr.