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: iX 08 Února 2012, 10:48:51

Název: Pomoc se skriptíčkem (práce s řetězcem). [Vyřešeno.]
Přispěvatel: iX 08 Února 2012, 10:48:51
Potřeboval bych pomoc se skriptíčkem:
Řekněme, že výstup příkazu  blkid -U 78AD-98FA  je někdy:  /dev/sda1, někdy:  /dev/sdb1, jindy /dev/sde1 ...atd.
Já potřebuju následně změnit tu jedničku na konci na trojku - se zachováním správného písmenka (třeba /dev/sde3).
A tento výsledek pak použít jako parametr dalšího příkazu.
Nevěděl by někdo jak na to? (O skriptování a práci s řetězci nevím skoro nic :-\).
Název: Re:Pomoc se skriptíčkem (práce s řetězcem).
Přispěvatel: ntz_reloaded 08 Února 2012, 10:51:31
musis do sveho skripticku pouzit stream line editurek jako treba sediik:

Kód: [Vybrat]
> echo fuj | sed 's/fuj/mnam/'
mnam

viz manual k sedu, treba tohle tohle http://sed.sourceforge.net/sed1line_cz.html a nebo:

http://www.root.cz/clanky/neco-malo-o-sedu/
http://www.root.cz/clanky/hratky-z-radky-tr-sed-awk-a-ti-dalsi/
http://www.osnews.com/story/21004/Awk_and_Sed_One-Liners_Explained
Název: Re:Pomoc se skriptíčkem (práce s řetězcem).
Přispěvatel: iX 08 Února 2012, 11:04:03
Děkuji za navedení za světlem! ;)

Asi nejjednodušší je:  blkid -U 78AD-98FA | tr "1" "3"
Název: Re:Pomoc se skriptíčkem (práce s řetězcem). [Vyřešeno.]
Přispěvatel: iX 08 Února 2012, 12:46:15
A Ou. Nějak jsem se zasekl... :(

Myslel jsem, že když místo toho /dev/sda3 v tomto příkazu:

sudo truecrypt --background-task -k /AA/EE/NN.dat /dev/sda3 /mnt/AA

dosadím:

sudo truecrypt --background-task -k /AA/EE/NN.dat 'blkid -U 78AD-98FA | tr "1" "3"'  /mnt/AA

tak to pojede, ale ono EE!! Ten příkaz nebere vnořené příkazy jako argumenty.

Jak z toho wen?

 :-*
Název: Re:Pomoc se skriptíčkem (práce s řetězcem). [Vyřešeno.]
Přispěvatel: GdH 08 Února 2012, 13:12:24
Jestli jsi to opravdu napsal takto, tak to fungovat nemůže. Jednoduché uvozovky subshell nespustí, ty obrácené ano, případně $(příkaz).

sudo truecrypt --background-task -k /AA/EE/NN.dat `blkid -U 78AD-98FA | tr "1" "3"` /mnt/AA
Název: Re:Pomoc se skriptíčkem (práce s řetězcem). [Vyřešeno.]
Přispěvatel: iX 08 Února 2012, 13:18:05
Díky! Přesně tak to funguje! (Tam to nebyla mezera v cestě, ale další operand... ;))

Teprve teď jsem zaregistroval existenci dalších uvozovek - do teď jsem si myslel, že jde o znak idntický s '  :-)