Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Peterx 24 Února 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?
-
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
-
Toto je poměrně jednoduchá úloha, bash toho umí mnohem víc...
Jedno z možných řešení vypadá takto:
#!/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“.)
-
Dík za odpoveď a usmernenie, odskúšam a naštudujem to čím skôr.