Portál AbcLinuxu, 9. května 2025 19:42

Dotaz: nahodne cislo

20.12.2012 17:12 Hanyz
nahodne cislo
Přečteno: 339×
Odpovědět | Admin
Ahoj, jak by slo udelat regularnim vyrazem tohle:

- mam nejakou inicializovanou promennou

i="ahoj"

- a jak by se udelalo to, aby pri vypsani teto promenne vzniklo ahoj nebo ahoj2 nebo ahoj234. Zkrátka aby k tomu řezězci při jeho vypsání bylo přilepeno i libovolné číslo o libovolné délce?

Zkouším to nějak takhle, ale zatím nic moc:

echo ${i}`{[0-9]*}`

Díky za rady!

Ř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

20.12.2012 18:20 NN
Rozbalit Rozbalit vše Re: nahodne cislo
Odpovědět | | Sbalit | Link | Blokovat | Admin
echo $i$RANDOM
20.12.2012 18:45 Hanyz
Rozbalit Rozbalit vše Re: nahodne cislo
aha, díky, tohle by bylo jedno rešení, ale šlo by to i nějak jinak? K čemu to vlastně potřebuju. Chci filtrovat v obsáhlém textu pouze ty řádky, kde se nachází na začátku řetezec "ahoj" a zároveň v pátem sloupci (např. na prvním řádku je to A143) znak A a vedle něj pouze číslo, které spolu tvoří řetězec. Takže výsledkem z níže uvedené ukázky byly správně jen první dva řádky. Jak to udělat?

obsah souboru:

...

ahoj 1 N SER A143 11.783 -14.353 25.532 1.00 30.81 N

ahoj 2 N SER A144 11.783 -14.353 25.532 1.00 30.81 N

ahoj 3 N SER Azzz 11.783 -14.353 25.532 1.00 30.81 N

ahoj 4 N SER A14e6 11.783 -14.353 25.532 1.00 30.81 N

...

Takhle by to nešlo:

i="A"

cat soubor | awk '$1 == "ahoj" && $5 == "'"$i$RANDOM"'" {print $0}' >> vysledek.txt

Chtělo by to místo $RANDOM tam dát nějaký RE, něco ve smyslu [0-9]*...zkouším, zkouším a zatím bez výsledku. Poradí někdo tohle? Díky

Řešení 1× (Hanyz (tazatel))
20.12.2012 18:58 NN
Rozbalit Rozbalit vše Re: nahodne cislo
Tak kdyz uz jses u toho awku: awk '$1 == "ahoj" && $5 ~ /^A[0-9]+$/'
20.12.2012 19:07 Hanyz
Rozbalit Rozbalit vše Re: nahodne cislo
Díky, zkusím, ale ještě drobnustka. Ten znak A bych potřeboval dát do proměnné, já ho v cyklech budu měnit. Šlo by to tedy i nějak takhle?

awk '$1 == "ahoj" && $5 ~ /^$i[0-9]+$/'

Trošku mě tam straší ten dolar v RE, nebude to brát jakoby až do konce řádku? Já bych chtěl vždy jen do konce řetezce (, který je vždy v tom pátém sloupci).
20.12.2012 21:40 Hanyz
Rozbalit Rozbalit vše Re: nahodne cislo
Funguje:

awk '$1 == "ahoj" && $5 ~ /^'$i'[0-9]+$/

Ještě jednou díky!

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.