Isso deve resolver seu problema:
awk -F, '
BEGIN{OFS=FS}
/kbps/{gsub("kbps","",$1);$1=$1*1000};
/mbps/{gsub("mbps","",$1);$1=$1*1000000}
1' file.csv
Eu tenho um csv da seguinte forma
1.2kbps,link1,description
1.2mbps,link2,description
Eu gostaria de encontrar e substituir
a) ponto e kbps com 000 na coluna1
b) ponto e mbps com 000000 na coluna1 usando o gawk ou o awk e a saída deve parecer com o seguinte
12000,link1,description
12000000,link2,description
Eu prefiro o Gawk, mas posso usar exemplos de awk e brincar com ele
Obrigado
Isso deve resolver seu problema:
awk -F, '
BEGIN{OFS=FS}
/kbps/{gsub("kbps","",$1);$1=$1*1000};
/mbps/{gsub("mbps","",$1);$1=$1*1000000}
1' file.csv
Tente isto (testado contra o GNU Awk 3.1.7):
awk '{sub(/\./,"");sub(/kbps/,"000");sub(/mbps/,"000000")}1' foo.csv
Tags gawk