Kezdőlap › Fórumok › Programozás › AWK , SEGITSETEK !!
- This topic has 23 hozzászólás, 5 résztvevő, and was last updated 20 years, 1 months telt el by
uzsolt.
-
SzerzőBejegyzés
-
2005-04-19-14:01 #2013237Code:2) echo „kerem beszurando sor szamat”
read szam
echo „kerem a beszurando sort”
read szoveg
cat $1 | awk „{if (NR == $szam) {print szoveg}
else {print $0 }” >> $1;;Szerintem a „>> $1” átirányítás nem jó, mivel a >> -kor hozzáírás lesz a vége, tehát a $1 -bõl lesz $1+(beszúrt $1). Itt szerintem egy ideiglenes file-ba irányítod > -vel, majd ezt átnevezed $1-re.
Code:3) echo „kerem a torlendo sor szamat”
read sorszam
cat $1 | awk „{ if ( NR != sorszam) then print $0}” > $1;;Hasonlóan, mint 2. Asszem nem túl jó ötlet ugyanazt a file-t használni inputnak (cat) és outputnak (>).
Code:4) echo ” kerem a keresendo szot”; read szo
cat $1 | awk „{ db=0;
for ( i=1; i <= NF; i++) { if(i == szo) then { db++ } } echo " $db talalat volt " }";;Szerintem a szo helyett $szo kellene, nem? Meg szerintem a ciklus se tökéletes. De grep-pel nem lenne jobb?
Code:db=`grep $szo $1 | wc -l `Code:6) cat $1 | awk „{ MAX=0;
for ( i=1; i <= NF; i++ ) { if( $i -gt MAX) { MAX = $i}} echo "$MAX a maximum "}";;awk helyett szerintem itt pedig sort-ot lehetne használni (sort -n):
Code:max=`sort -n $1 | head -n 1`Remélem, ilyesmire gondoltál. Meg hogy ez volt a pontosan kitûzött feladat 🙂
2005-04-19-14:05 #2013238koszi a sok segitseget , maris puttyolok az egyetemi gepre.
2005-04-19-14:10 #2013239koszi a sok segitseget , maris puttyolok az egyetemi gepre.
[align=right][snapback]130690[/snapback][/align]Akkor köszönd, ha már mûködik is. Tudod, nyugtával dícsérd a napot 🙂
2005-04-19-14:16 #2013240jaja:P
csak azt nem ertem h itt miert idezojelek koze irdo ? igy ez stringkent visszairna , nem ?
db=`grep $szo $1 | wc -l `
vagy akar a 6.menupontba amit ajanlottal…
2005-04-19-14:20 #2013241db=$()…ra gondoltal nem ?
2005-04-19-14:24 #2013242jaja:P
csak azt nem ertem h itt miert idezojelek koze irdo ? igy ez stringkent visszairna , nem ?
db=`grep $szo $1 | wc -l `
vagy akar a 6.menupontba amit ajanlottal…
[align=right][snapback]130692[/snapback][/align]Nem idézõjel! Hanem Alt+7 (legalábbis pc-ken, „normál” billentyûzetnél). Valami fordított aposztrófhoz hasonlít. Ez azt csinálja, hogy ezen két „aposztróf” közé berakott parancsot végrehajtja, majd annak a kimenetével tér vissza. Tehát ebben az esetben grep $szo $1 végrehajtódik, kiír x sort, ezt a wc elkapja, megszámolja a sorokat, és ez egy számmal tér vissza (nyilván x-szel). Ez a szám adódik át a ` jelek miatt a db változónak.
2005-04-19-14:31 #2013243es mindez nemjo megoldashoz vezet , mert mivan ha valami tobbszor szerepel egy sorban:D???
2005-04-19-14:36 #2013244LECCI calaki valositsa meg a 2.ik menupontot es a tobbit tuti tudni fogom 🙁
2005-04-19-14:40 #2013245es mindez nemjo megoldashoz vezet , mert mivan ha valami tobbszor szerepel egy sorban:D???
[align=right][snapback]130698[/snapback][/align]Ez bizony igaz 🙁
Nem tudom, egy sed-hez mit szólnál 🙂Code:db=`grep $szo $1 | sed ‘s/$szo/$szon/g’ | wc -l`Lehet, hogy kezdem már elbonyolítani, de hirtelen más nem jut eszembe. Bár mintha ezzel is lenne probléma, mert valami nem tetszik benne. De mindjárt prószálom…
2005-04-19-14:43 #2013246Lehet, hogy kezdem már elbonyolítani, de hirtelen más nem jut eszembe. Bár mintha ezzel is lenne probléma, mert valami nem tetszik benne. De mindjárt prószálom…
[align=right][snapback]130700[/snapback][/align]Ott a gond, hogy ha a sor végén van a $szo, akkor egy üres sor is bejön.
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz