Portál AbcLinuxu, 23. dubna 2024 13:18


Dotaz: Jak vypsat text ve stejné vzdálenosti zleva?

26.7.2012 17:42 Palec
Jak vypsat text ve stejné vzdálenosti zleva?
Přečteno: 303×
Odpovědět | Admin
Jak můžu prosím vypsat text v nějaké úhledné podobě? Uvedu příklad
Tohle mi vypíše
echo "nejaky text ktery ma nejakou delku " $result
echo "nejaky jiny text ktery ma nejakou jinou delku " $result
echo "nejaky jiny text ktery ma uplne nejakou jinou delku " $result
toto
nejaky text ktery ma nejakou delku OK..
nejaky jiny text ktery ma nejakou jinou delku OK..
nejaky jiny text ktery ma uplne nejakou jinou delku OK..
jak to ale můžu vypsat takhle
nejaky text ktery ma nejakou delku                  OK..
nejaky jiny text ktery ma nejakou jinou delku       OK..
nejaky jiny text ktery ma uplne nejakou jinou delku OK..
Děkuji

Řešení dotazu:


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

Odpovědi

Řešení 1× (Martin Beránek)
26.7.2012 17:57 Radovan Garabík
Rozbalit Rozbalit vše Re: Jak vypsat text ve stejné vzdálenosti zleva?
Odpovědět | | Sbalit | Link | Blokovat | Admin
printf '%-50s %s' 'nejaky text ktery ma nejakou delku' 'OK..'
26.7.2012 18:04 Palec
Rozbalit Rozbalit vše Re: Jak vypsat text ve stejné vzdálenosti zleva?
Děkuji a jak se tohle jmenuje? co mám přesně hledat? Ihmo co když bych používal barevné obarvení v těch rádcích?
echo -e \e[1;33m TEXT \e[0m
jde to nějak zkloubit? Děkuji
Tarmaq avatar 26.7.2012 18:55 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Jak vypsat text ve stejné vzdálenosti zleva?
ano, printf lze pouzit.. viz:
result="ok"
format="\e[0m%-60s \e[1;33m%s\n"
printf $format "nejaky text ktery ma nejakou delku " $result
printf $format "nejaky jiny text ktery ma nejakou jinou delku " $result
printf $format "nejaky jiny text ktery ma uplne nejakou jinou delku " $result
Don't panic!
26.7.2012 18:24 NN
Rozbalit Rozbalit vše Re: Jak vypsat text ve stejné vzdálenosti zleva?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jazyk ? Jinak bych napsal funkci ktere se predhodi dva retezce na zaklade pevne delky prvniho retezce dopocita mezery a vyplivne radek:

string+space x (fixlen-string)+result
26.7.2012 18:31 Palec
Rozbalit Rozbalit vše Re: Jak vypsat text ve stejné vzdálenosti zleva?
Dělám to v bashi... ale vůbec nevím co jste to napsal :(
Jendа avatar 26.7.2012 20:34 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak vypsat text ve stejné vzdálenosti zleva?
Že si máš zjistit délku prvního řetězce a doplnit ho mezerama na požadovanou délku. Ten formát, ve kterém to napsal, je pseudokód.
26.7.2012 20:49 Palec
Rozbalit Rozbalit vše Re: Jak vypsat text ve stejné vzdálenosti zleva?
Jo takhle, už rozumím.. OK
doplnit ho mezerama na požadovanou délku
a jakpak se něco takového dělá? Díky
Jendа avatar 26.7.2012 21:05 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak vypsat text ve stejné vzdálenosti zleva?
Hmm, v bashi něco jako (netestováno)
string="ahoj"
norm=10
lenght=`echo -n "$string" | wc -c`
for i in `seq 1 $(( $norm - $lenght ))`; do
  string="$string "
done
echo "$string" | tr " " "_" #aby to bylo vidět
Tarmaq avatar 27.7.2012 13:57 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Jak vypsat text ve stejné vzdálenosti zleva?
ale vzdyt uz bylo zmineno, ze na to je urcena funkce printf, proc vymyslet znovu kolo? Btw $length muze byt delsi nez $norm, coz by vyustilo v podivne chovani ;]
Don't panic!
Jendа avatar 27.7.2012 14:49 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak vypsat text ve stejné vzdálenosti zleva?
Protože jsem ukazoval implementaci pseudokódu.

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.