Portál AbcLinuxu, 25. dubna 2024 03:26


Dotaz: Bash skript - vypsání stejných hodnot ze dvou řetězců

30.1.2007 20:02 2007
Bash skript - vypsání stejných hodnot ze dvou řetězců
Přečteno: 210×
Odpovědět | Admin
Prosilil bych o pomoc. Mám dva řetězce. Potřeboval bych vypsat všechny hodnoty, které se nacházejí jak v řetězci 1 tak v řetězci 2. Jak na to?
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

30.1.2007 20:13 diverman | skóre: 32 | blog: život s tučňáčkem
Rozbalit Rozbalit vše Re: Bash skript - vypsání stejných hodnot ze dvou řetězců
Odpovědět | | Sbalit | Link | Blokovat | Admin
link link
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
30.1.2007 21:18 2007
Rozbalit Rozbalit vše Re: Bash skript - vypsání stejných hodnot ze dvou řetězců
tak tohle mi moc nepomohlo
30.1.2007 22:25 Pavel1 | skóre: 33
Rozbalit Rozbalit vše Re: Bash skript - vypsání stejných hodnot ze dvou řetězců
Proč by to nemělo pomoci? Návody, to je přeci to nejlepší. Snad by jsi nechtěl, aby to někdo za Tebe vyřešil.

Jo a až to vyřešíš, nezapomeň sem poslat Tvé funkční řešení (pro ostatní). ;-)
31.1.2007 07:36 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Bash skript - vypsání stejných hodnot ze dvou řetězců
Odpovědět | | Sbalit | Link | Blokovat | Admin
V pythonu:
>>> a = '0 2 4 6 8 10 12 14 16 18 20'
>>> b = '0 3 6 9 12 15 18 21 24 27 30'
>>> a_num = [int(x) for x in a.split()]
>>> b_num = [int(x) for x in b.split()]
>>> [x for x in a_num if x in b_num]
[0, 6, 12, 18]
31.1.2007 09:07 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Bash skript - vypsání stejných hodnot ze dvou řetězců
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co je to hodnota v řetězci? Nerozumim.
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é.
31.1.2007 23:51 Slovan | skóre: 6
Rozbalit Rozbalit vše Re: Bash skript - vypsání stejných hodnot ze dvou řetězců
Odpovědět | | Sbalit | Link | Blokovat | Admin
Skus:

paste súbor1 súbor2 Vypíše riadky so spoločným začiatkom vedľa seba podobne ako merge, ale vypisuje zhodnú časť pre všetky súbory.

Neviem ci je to to co si chcel , snad to trochu pomoze.

Cerpal som z tohoto.
1.2.2007 01:26 Petr Šimeček
Rozbalit Rozbalit vše Re: Bash skript - vypsání stejných hodnot ze dvou řetězců
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vidim, že je tu kupa velkejch oborníků. Divim se, že nikdo neposlal RTFM... :)

Pokud jsem tě dobře pochopil, potřebuješ něco takového:

#!/bin/sh
a=( 1 2 3 4 5 6 7 e )
b=( a b c 1 2 d e )

for element_a in $(seq 0 $((${#a[@]} - 1))); do
for element_b in $(seq 0 $((${#b[@]} - 1))); do
if [ ${a[$element_a]} = ${b[$element_b]} ]; then
echo "shodny prvek ${a[$element_a]}"
fi
done
done
exit 0

Pokud by ses potýkal s rozdíly ve velikosti písmen, uprav si to. Konverzi na malé uděláš
například takto:

echo "toHle je VeLKy teXT" | tr 'A-Z' 'a-z'

návratem bude "tohle je velky text"

Dobrou noc,
Petr
petr@multimedia.cz


P.S. Slusna pruda, editovat v tomhle systemu, ach jo...
1.2.2007 09:36 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Bash skript - vypsání stejných hodnot ze dvou řetězců
Aaa, odborník se ozval. Gratuluji k úspěšné interpretaci pojmu hodnota v řetězci, ne mě je to úplně nový pojem.

P.S.: Slušná pruda, číst příspěvek takového nýmanda, který nedokáže ani uzavřít zdroják do <pre>. RTFM! (kdyby jsi nevěděl kterej, tak ten co je pod editačním polem příspěvku)
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é.
1.2.2007 13:53 milda
Rozbalit Rozbalit vše Re: Bash skript - vypsání stejných hodnot ze dvou řetězců
Nechápu proč tady slovíčkaříš. Myslím, že termín hodnota v řetězci asi není úplně v pořádku, ale dle mého názoru celkem přesně vystihuje to, co chtěl pisatel říci. Pokud umíš poradit, tak poraď. Pokud ale neumíš, buď prosím zticha.
1.2.2007 14:39 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Bash skript - vypsání stejných hodnot ze dvou řetězců
Jaké svlovíčkaření? Já jsem myslím, člověk, který by dokázal poradit, ale mě stále není jasné, jak zní zadání a autor dotazu ho stále nevysvětlil. Takže znovu se táži, co jsou to ty hodnoty v těch řetězcích, které mají být stejné?
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é.
1.2.2007 15:29 milda
Rozbalit Rozbalit vše Re: Bash skript - vypsání stejných hodnot ze dvou řetězců
použiji jeho terminologii:
prvni_retezec="Pichi "
druhy_retezec="je rypal, "
treti_retezec="a rypalem zustane"
echo $prvni_retezec $druhy_retezec $treti_retezec

"hodnota retezcu" byla prave vytistena :-)
1.2.2007 16:08 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Bash skript - vypsání stejných hodnot ze dvou řetězců
OK, řešení dle tvé terminologie
[ "$prvni_retezec" == "$druhy_retezec" ] && echo "$prvni_retezec"
To bych tak skromě typnul, že to asi nebude ono.
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é.
1.2.2007 16:54 milda
Rozbalit Rozbalit vše Re: Bash skript - vypsání stejných hodnot ze dvou řetězců
To je zbytečná debata, zjevně nemáš co dělat
1.2.2007 17:01 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Bash skript - vypsání stejných hodnot ze dvou řetězců
Ano, reagovat na trollujícího anonyma je ztráta času, polepším se. Vzhlede k tomu, že původní tazatel zadání neupřesnil bych dotaz považoval za bezpředmětný.
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é.
1.2.2007 17:47 Sinuhet
Rozbalit Rozbalit vše Re: Bash skript - vypsání stejných hodnot ze dvou řetězců
To jsem zvedav, jakym algoritmem hodlate retezec typu 'Pichi je rypal, a rypalem zustane' rozkladat na "hodnoty" 'Pichi ', 'je rypal, ' a 'a rypalem zustane'.
1.2.2007 18:28 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Bash skript - vypsání stejných hodnot ze dvou řetězců
Kdyby aspoň řekl jestli tou hodnotou je třeba slovo.
perl -le '$,=" ";($a, $b) = map [split], @ARGV; @seen{@$a}=(); print grep exists $seen{$_}, @$b' 'tuplovany brk je milda blek posuk trouba' 'huk milda bac je kuk trouba'
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é.
1.2.2007 10:20 Pavel1 | skóre: 33
Rozbalit Rozbalit vše Re: Bash skript - vypsání stejných hodnot ze dvou řetězců
Vidim, že je tu kupa velkejch oborníků.

P.S. Slusna pruda, editovat v tomhle systemu, ach jo...
Za to Ty jsi odborník největší. Než budeš kritizovat, tak se nauč alespoň číst.

Dalším častým problémem je, jak vložit výpis logu či konfigurační soubor. V tomto případě váš text vložte mezi značky PRE, které zachovají formátování.

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.