awk, ", és az új sor

Fórumok

Sziasztok!

van egy filem benne tübbek között URL-ek, amikben van & karakter. Szeretnék emiatt awk-val "-jelet tenni az URL elé és mögé de sehogy sem sikerül. Eddig jutottam:
awk '{printf "wget --load-cookies cookies.txt \""; print $4; printf "\"" }' database.csv

A probléma így az, hogy a második " jel mindig új sorba kerül. Mit tegyek, hogy ez ne így legyen?

Köszönöm! :)

Hozzászólások

Azt javasolnám, hogy ennek megakadályozására olvasd el az awk manuálját, de hogy mégse így induljon az éved, itt elmondom, hogy ha valamit printtel írsz ki, azt menten soremelés fogja követni.
Másrészt semmi sem akadályoz meg abban, hogy egy print parancsnak konkatenált sztringet adj paraméterként, amely konkatenálásnak az a műveleti jele, hogy nincs neki.

Kipróbálandó:

str1="Pityuka"
str2="vagyok."
print str1 " " str2

Itt a megoldás:

print "wget --load-cookies cookies.txt \"" $4 "\""

Közelítsük meg máshonnan a dolgot. (Máshonnan, mint lx kollega.)

1) Ha egyszer egy awk programban használtál printet is, meg printf-et is, akkor hogy van az, hogy észreveszed, hogy a print rak soremelést, de azt már nem veszed észre, hogy a printf viszont nem. (Segítek, megoldhatod úgy is a problémádat, hogy a második print parancsot kicseréled ugyanolyan printf-re, mint amilyet a másik két kiírásra használsz. (Illetve nem pont olyanra, hanem egy olyanra, amelyik kap egy formátumsztring paramétert is.)

2) Ha pedig még nyakatekertebb módon akarod megoldani a problémádat, akkor nem hiszed el lx kollega állítását a print parancs által kiírt soremelésről, hanem furmányosan az awk programod elejére írod ezt:
BEGIN { RS="" ; }
és máris nem lesz a print után sem soremelés.

3) tényleg megfogadod a tanácsot az RTFM-ről.