Portál AbcLinuxu, 12. května 2025 02:46

Dotaz: split v bashi

17.2.2005 21:01 J. Milfajt
split v bashi
Přečteno: 416×
Odpovědět | Admin
zdravim,
ktera funkce v bashi rozdeluje retezec tak jako to dela vetsinou funkce split?

priklad. mam retezec qwe:rtyu:io
a potrebuji ziskat retezce:
qwe
rtyu
io

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

Odpovědi

17.2.2005 21:19 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: split v bashi
Odpovědět | | Sbalit | Link | Blokovat | Admin
Bash rozděluje slova sám od sebe :-) Třeba
s="qwe:rtyu:io"

save_ifs="$IFS"
IFS=":"
a=($s)
IFS="$save_ifs"

echo ${a[0]}
echo ${a[1]}
echo ${a[2]}
Nebo totéž se set -- $s, pak by ty slova byly v $1, $2, $3.
17.2.2005 21:21 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: split v bashi
Malá oprava
echo "${a[0]}"
echo "${a[1]}"
echo "${a[2]}"
18.2.2005 18:07 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: split v bashi
Proč tak složitě?
s='qwe:rtyu:io'
IFS=':' a=($s)
for i in "${a[@]}"; do echo $i; done
A IFS jednoduše obnovím
IFS=''
To je tak, když se nečte manuál :-)

P.S.: Yeti: Tahle verze bude fungovat i pro s='qwe:rt yu:io' narozdíl od té tvojí ;-)

XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
17.2.2005 21:20 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: split v bashi
Odpovědět | | Sbalit | Link | Blokovat | Admin
Žádná, shell rozděluje na slova sám. Tduíž pichi sem určitě napíše trik s IFS, ale já bych to udělal prostě
b=${a//:/ }
18.2.2005 13:57 © | skóre: 37 | blog: escaped
Rozbalit Rozbalit vše Re: split v bashi
Nechápu jednu věc, vysvětlil bys mi ji?
a="A"
echo "${a//A/B!!}"
Co způsobily ty vykřičníky? V shellu mi v historii přibude jeden příkaz, který jsem nenapsal.
echo "${a//A/Ba="A"}"
Přijde mi to zajímavé. :-D
18.2.2005 15:33 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: split v bashi
Najdi si v bash(1) sekci HISTORY EXPANSION.

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.