Bash a podmínka s tečkou

Vávra V.

Bash a podmínka s tečkou
« kdy: 18. 02. 2013, 13:53:13 »
Dobrý den, poradíl by někdo jak můžu v bashi zjistit jestli proměnná obsahuje pouze jednu tečku? Děkuji za pomoc

V.V.
« Poslední změna: 18. 02. 2013, 14:43:56 od Petr Krčmář »


Re:BASH - Podmínka
« Odpověď #1 kdy: 18. 02. 2013, 14:08:45 »
Asi nemyslíte toto:
Kód: [Vybrat]
[ "$x" = '.' ]
že? :)

Ptáte se, zda řetězec obsahuje právě nebo nanejvýš jednu tečku?

Re:BASH - Podmínka
« Odpověď #2 kdy: 18. 02. 2013, 14:11:51 »
Co třeba tohle:

Kód: [Vybrat]
echo $x | grep -q '^[^.]*\.[^.]*$'

Vávra V.

Re:BASH - Podmínka
« Odpověď #3 kdy: 18. 02. 2013, 14:30:17 »
Ptáte se, zda řetězec obsahuje právě nebo nanejvýš jednu tečku?

Omlouvám se, napsal jsem to špatně!
Potřebuji podmínku, která vyhodnotí jestli je v řetězci pouze jedna jediná tečka.
Děkuji

Re:Bash a podmínka s tečkou
« Odpověď #4 kdy: 18. 02. 2013, 14:58:04 »
Trochu těžkotonážní, ale bez dlouhého hrání si s regulárama:

Kód: [Vybrat]
$ echo "Bob a Bobek"|awk 'BEGIN { FS="." } {print NF}'
1
$ echo "Bo.b a Bobek"|awk 'BEGIN { FS="." } {print NF}'
2
$ echo "Bo.b a Bob.ek"|awk 'BEGIN { FS="." } {print NF}'
3
$ echo "Bo.b a Bob.ek."|awk 'BEGIN { FS="." } {print NF}'
4
$ echo ""|awk 'BEGIN { FS="." } {print NF}'
0
$ echo "."|awk 'BEGIN { FS="." } {print NF}'
2
$ echo "...."|awk 'BEGIN { FS="." } {print NF}'
5



Re:Bash a podmínka s tečkou
« Odpověď #5 kdy: 18. 02. 2013, 15:01:46 »
Nebo:

Kód: [Vybrat]
$ echo "Bob a Bobek"|egrep -o '\.'
$ echo "Bob a. Bobek"|egrep -o '\.'
.
$ echo "Bob a. Bob .ek"|egrep -o '\.'
.
.
$ echo "Bob a. Bob .ek ."|egrep -o '\.'
.
.
.
$ echo "Bob a. Bob .ek ."|egrep -o '\.'
.
.
.
$ echo "                                         ."|egrep -o '\.'
.
$ echo "        .                                 ."|egrep -o '\.'
.
.


Milan Straka

Re:Bash a podmínka s tečkou
« Odpověď #6 kdy: 18. 02. 2013, 16:45:54 »
Jde to i pomoci prostredku samotneho bashe:

Kód: [Vybrat]
case "$promenna" in
  *.*.*) echo vic nez jedna tecka;;
  *.*) echo jedna tecka;;
  *) echo zadna tecka;;
esac

smoofy

  • *****
  • 1 032
    • Zobrazit profil
    • E-mail
Re:Bash a podmínka s tečkou
« Odpověď #7 kdy: 18. 02. 2013, 16:54:16 »
A co takhle:

$x="Nejakej text co chci testovat"
$a="znak ktery hledam"

# Tohle vrati pocet okurenci v radku
echo $x | grep -o "$a" | wc -l

a pak uz jenom podminka pro pocet okurenci ktere pozaduji...

Vávra V.

Re:Bash a podmínka s tečkou
« Odpověď #8 kdy: 18. 02. 2013, 17:22:48 »
Díky, díky ;)

Chlapy a jak by se dalo jednoduše zjistit jestli proměnná obsahuje správný tvar a znaky pro doménu?
Čili jen 0-9, -, a-z a nesmí začínat ani končit jiným znakem než 0-9 nebo a-z?

Děkuji za pomoc

Re:Bash a podmínka s tečkou
« Odpověď #9 kdy: 18. 02. 2013, 17:38:28 »
Díky, díky ;)

Chlapy a jak by se dalo jednoduše zjistit jestli proměnná obsahuje správný tvar a znaky pro doménu?
Čili jen 0-9, -, a-z a nesmí začínat ani končit jiným znakem než 0-9 nebo a-z?

Děkuji za pomoc

Hm.

http://www.regular-expressions.info/examples.html
http://net.tutsplus.com/tutorials/other/8-regular-expressions-you-should-know/
http://en.wikipedia.org/wiki/Regular_expression

.

Re:Bash a podmínka s tečkou
« Odpověď #10 kdy: 18. 02. 2013, 17:43:52 »
 :o
[[ $ajta =~ $krajta ]]


#

Re:Bash a podmínka s tečkou
« Odpověď #12 kdy: 18. 02. 2013, 21:42:53 »
Ty vole proc by ti to nekdo mel jako komplet psat?

Napis co presne nepochopils z tech odkazu, co si uz zkousel a melo to delat, ale nedela. Vocasum, co maj nulovou snahu, nas...

Tom222

Re:Bash a podmínka s tečkou
« Odpověď #13 kdy: 19. 02. 2013, 09:40:06 »
Tazatel neumi pouzivat google? :) Jak je to s tou rybou a prutem? Nauc chytat, nedavej rybu?  8)
Co treba... http://stackoverflow.com/questions/1128168/validation-for-url-domain-using-regex-rails ??

Re:Bash a podmínka s tečkou
« Odpověď #14 kdy: 19. 02. 2013, 10:53:45 »
Jde to i pomoci prostredku samotneho bashe:

Kód: [Vybrat]
case "$promenna" in
  *.*.*) echo vic nez jedna tecka;;
  *.*) echo jedna tecka;;
  *) echo zadna tecka;;
esac

Hezké řešení!