awk help

awk help

Hozzászólások

Hello!
Hogyan tudnám AWK-ban egy külső bash változó értékét lekérdezni?
Konkrétan egy fájl leghosszabb sorát szeretném megtudni és azt awk-ban felhasználni, ami addig megvan, hogy melyik az, de azt elérni awk-ban... nem jöttem még rá. (Esetleg van erre külön awk fv?)
köszi előre is

[quote:6587a8ae53="popacsek"]-v paraméter?

Köszönöm a gyors választ. Működik. Nem gondoltam volna, hogy így kell. :)

Még egy kérdés, hátha...
A length($0) minek számolja a tabulátorokat? Pl egy sorban van kettő tab majd szöveg, akkor elképzelhető, hogy ebből a kettő tab-ból csak egyet vesz figyelembe? Lehet ez ellen tenni?
(Persze az is lehet, hogy a printf( "%s", $0) ír ki csak egy tabot)
Tuladjonképpen az a gond, hogy kettő tabot egy szóközzé redukál.

A length($0) mit ad isten a sor _összes_ karakterének számát adja vissza (sorvégjel nélkül), ezenkívül a printf -nek is jól kell működni, szóval valami ott nem stimmel. Esetleg gey általad hibásnak mondott részletet itten láthatnánk ecpliciten?

[code:1:21991039a0]
H=`cat $1 | wc -L`
awk -v LH=$H
'{for(j=length($0);j<LH;j++)
printf( " " )}

{for(i=length($0);i>=1;i--)
printf ( "%c", substr($0,i,1) )}

{printf ( "\n" )}' $1
[/code:1:21991039a0]

Egy szövegfájl sorait írja ki fordítva, a leghosszabb sorhoz igazítva.
Nos a probléma: ha egy string tartalmaz 2 tablátort, akkor azt egy szóköznyi méretnek veszi (1 karakter), 3 tabulátor esetén egy tabulátronyi és egy szóköznyi méretnek (4 hosszúságu tab esetén, 5 karakternek), és így tovább párosával 1-nek veszi a length( STRING ). Akárcsak az 'echo STRING | wc -c'