Portál AbcLinuxu, 6. května 2025 09:21

Dotaz: awk '{print $KUA}' shellovska promenna

1.4.2006 16:11 Alienrebell | skóre: 4
awk '{print $KUA}' shellovska promenna
Přečteno: 328×
Odpovědět | Admin
Dobry den,
jako parametr shellovskecho scriptu dostavam "1 2 3" , ktery ulozim do promenne KUA. Pomoci sedu:
KUA=`echo $KUA | sed 's/^/$/' | sed 's/ /\" \"\$/g'`
udelam z 1 2 3 -> $1" "$2" "$3 , pak chci pomoci TEST=`cat test.txt | awk '{print $KUA}'` nacist do promenne TEST retezece(sloupece) 1 2 3.
Tzn:
v souboru test.txt je napsano:
ahoj jak se mas
nacte se mi do promenne jen:
ahoj jak se
Druhy problem mam, ze kdyz dostanu jako ten parametr "1 2 3", potreboval bych to nacist do promenne jako 3 4 5 tj. pricist ke kazdemu cislo dvojku.
Poradite mi prosim ja na to? Dekuji
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.4.2006 16:21 coques | skóre: 21 | blog: FailSystem
Rozbalit Rozbalit vše Re: awk '{print $KUA}' shellovska promenna
Odpovědět | | Sbalit | Link | Blokovat | Admin
ja to nechapem :)
Polívčička byla..
1.4.2006 16:37 Alienrebell | skóre: 4
Rozbalit Rozbalit vše Re: awk '{print $KUA}' shellovska promenna
V souboru test.txt mam ulozeno: Ahoj jak se mas
chci vytisknout pomoci awk jen: Ahoj jak se
udelal bych to takto:
cat test.txt | awk '{print $1" "$2" "$3}'
Jenomze jaky retezec z toho textu mam tisknout dostavam v parametru shelloveho skriptu. Takze dostanu napr: "1 2" coz se mi ulozi do promenne KUA -> upravim na: $1" "$2 a chci to nacpat do:
cat test.txt | awk '{print $KUA}'
Bohuzel mi tato syntaxe vytiskne cely soubor a ne ocekavany:
Ahoj jak (v pripade "1 2")
David Watzke avatar 1.4.2006 16:44 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: awk '{print $KUA}' shellovska promenna
Protože mezi apostrofy se proměnné neexpandují...
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
1.4.2006 16:49 Alienrebell | skóre: 4
Rozbalit Rozbalit vše Re: awk '{print $KUA}' shellovska promenna
Ocividne, ale jak zaridit, aby awk neco takoveho serzral?
1.4.2006 16:47 coques | skóre: 21 | blog: FailSystem
Rozbalit Rozbalit vše Re: awk '{print $KUA}' shellovska promenna
nebolo by jednoduchsie pouzit "cut" ?
Polívčička byla..
1.4.2006 16:51 Alienrebell | skóre: 4
Rozbalit Rozbalit vše Re: awk '{print $KUA}' shellovska promenna
Poradis mi prosim jak?
1.4.2006 17:00 coques | skóre: 21 | blog: FailSystem
Rozbalit Rozbalit vše Re: awk '{print $KUA}' shellovska promenna
OUTPUT="1 2"

echo "mam male nohy" | cut -d" " --fields="$OUTPUT"

Polívčička byla..
1.4.2006 17:18 Alienrebell | skóre: 4
Rozbalit Rozbalit vše Re: awk '{print $KUA}' shellovska promenna
No, to je presne to co potrebuji, usetril jsi mi spoustu prace. Jeste mi prosim rekni jak z OUTPUT="1 2" udelam OUTPUT="3 4" a dam si tvou fotku nad postel.
Tedy potrebuji z:
maldy holky: Jana Lucka Erzika
vytisknout:
maldy holky: Jana(1) Lucka(2) Erzika(3)
u kazde holky je v zavorce parametr, ktery ji nalezi. Tzn:
test.sh -h "1 3"
se vytiskne:
maldy holky: Jana Erzika
1.4.2006 17:25 coques | skóre: 21 | blog: FailSystem
Rozbalit Rozbalit vše Re: awk '{print $KUA}' shellovska promenna
mne to dnes asi nemysli, ale zase ti nerozumiem preco chces posuvat ten output. mozno jazykova bariera :)
Polívčička byla..
1.4.2006 17:33 Alienrebell | skóre: 4
Rozbalit Rozbalit vše Re: awk '{print $KUA}' shellovska promenna
Protoze do te promenne OUTPUT se nahraje prarametr toho scriptu
tzn. pri spusteni scriptu: test.sh -h "1 3" se do OUTPUT nahreje 1 3
A pokud mam v souboru napsano:
maldy holky: Jana Lucka Erzika
vytisklo by se:
maldy Jana
a ne:
maldy holky: Jana Erzika
Tak kvuli tomu ten field potrebuji posunout.
1.4.2006 17:35 coques | skóre: 21 | blog: FailSystem
Rozbalit Rozbalit vše Re: awk '{print $KUA}' shellovska promenna
aha, skus poguglovat nieco o prikaze "shift" inak nemam tusenie..
Polívčička byla..
David Watzke avatar 1.4.2006 16:28 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: awk '{print $KUA}' shellovska promenna
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mně se to načte správně... Btw, raději
KUA="$(echo $KUA | sed -e 's/^/$/' -e 's: :" "$:g')"
TEST="$(awk '{print $KUA}' test.txt)"
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
David Watzke avatar 1.4.2006 16:32 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: awk '{print $KUA}' shellovska promenna
Stejně je to nějakej nesmysl :-) Nehodí to chybu, ale je to, zdá se, k ničemu. O co se vlastně snažíš?
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
1.4.2006 16:46 Alienrebell | skóre: 4
Rozbalit Rozbalit vše Re: awk '{print $KUA}' shellovska promenna
Proste v souboru mam:
"Emil Nemyl rok2001 rok2002 rok2003 ...."
delam skript napr: test.sh , ktery s nejakym parametrem ma vytisknout jmeno a roky udane prepinacem. Tzn. pokud zadam test.sh -r "2 3" na se vytisknout:
"Emil Nemyl rok2002 rok2003"
a chtel jsem to delat postupem, ktery mam popsany vyse :-(
1.4.2006 18:28 tyfus
Rozbalit Rozbalit vše Re: Predani promenne z shellu do awku
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejak jsem tu nezahledl odpoved, tak ji dodam:

To co chce tazatel nemuze fungovat. Promenna bez sluvka export se nepreda a tak ji awk nemuze vypsat!

Reseni jsou vzasade dve.

Uvozovkovaci silenstvi. awk 'cosi'"${promenna}"'zbytek'

Anebo se podivat do manu :-(. -v var=value assigns value to program variable var.

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.