awk félperces [megoldva]

Fórumok

Sziasztok.

Szörnyű dolog történt velem és 1 órája keresgélek, úgy látszik még ilyen téren is defektes lettem. Öregszem...

A mindennapi awk-használataimnál szinte sosem volt szükségem külső paraméter meghívására, csak most. Ezt felejtettem el. Tudom, hogy itt már valamikor megoldottam, de NEM találom :(

A konkrét esetem:

cat $file |\
awk '\
BEGIN \
{FS=" "} \
{print $2, $3, "filenev"} \
'

Tehát ez eddig egy szokványos, mindennapi, mezei awk, amely a $file fájlt rákattantotta az awk-ra, amely a 2. és 3. oszlopot nyomtatja, majd a filenev stringet. Igen ám, de én ide pont azt a filenevet szeretném elérési útvonala nélkül beírni, amely a cat után szerepelt.

No ezt felejtettem el.
Külső paraméterátadás az awk belsejébe.
Szörnyű.
Pedig tudom, melyik könyvemben van és nem vagyok ott.
Tud valaki segíteni?

Hozzászólások

A legfapadosabb módszer:
cat $file |\
awk '\
BEGIN \
{FS=" "} \
{print $2, $3, "'$file'"} \
'

AWK-osabban:
awk '\
BEGIN \
{FS=" "} \
{print $2, $3, ARGV[1]} \
' $file

Leg-awk-osabban:
awk -F " " '{print $2, $3, ARGV[1]}' $file

nem szoktam awkt használni, de ha nem '-k közé teszed, akkor (nyilván a többi szükségest escapelve) a shell behelyettesíti neked (esetleg egy basename még kellhet)