Sziasztok!
Nem használtam még az awk-t, ezért egy kis segítséget kérnék a kezdéshez.
Bemeneti állomány:
"adat01","adat02","adat03","adat04","adat05"
"adat11","adat12","adat13","adat14","adat15"
"adat21","adat22","adat23","adat24","adat25"
Hogyan tudom kiíratni az éppen feldolgozott sor tetszőleges mezőjének értékét, illetve több mező értékét tetszőleges sorrendben (természetesen az idézőjelek nélkül)? A mezők értékeiben szerepelhet a ',' és a '"' karakter is!
Köszi,
pozsarzs
- 1176 megtekintés
Hozzászólások
BEGIN {
FS="\",\"";
}
$1 ~ "^\"" {
$1=gensub("^\"","",1,$1)
}
$NF ~ "\"$" {
$NF=gensub("\"$","",1,$NF)
}
{
printf("%s %s\n",$1,$2);
}
persze vannak hibai, pl ha a sor vegen van egy szokoz akkor bennemarad egy " karakter az utolso mezoben.
- A hozzászóláshoz be kell jelentkezni
Mindjárt kipróbálom.
Ha a sor utolsó idézőjele utáni szóközre gondolsz, akkor nincs baj, mert egy másik program állítja elő a csv-ket és nem tesz a végére szóközt.
- A hozzászóláshoz be kell jelentkezni
Bármit teszek ez a válasz: 'function gensub never defined'
Időközben rájöttem: az mawk nem szereti a gensubot.
Köszönöm a segítséget!
- A hozzászóláshoz be kell jelentkezni
gensub helyett gsub hasznalata? Azt mind a 3 elterjedtebb awk tudja (gawk, mawk es nawk is)
- A hozzászóláshoz be kell jelentkezni
Lehet, hogy jó lenne, de már felraktam a gawk-t. Csak saját használatra kell a héjprogram, ezért nem fontos, hogy minden awk-val menjen.
- A hozzászóláshoz be kell jelentkezni