Найти и заменить точку текстом в столбце 1 с помощью gawk или awk

У меня есть следующий CSV

1.2kbps,link1,description
1.2mbps,link2,description

Я бы хотел например, найти и заменить

a) точка и кбит / с на 000 в столбце1

б) точка и мбит / с на 000000 в столбце1 при использовании gawk или awk вывод должен выглядеть следующим образом

12000,link1,description
12000000,link2,description

Я предпочитаю Gawk, но могу использовать примеры awk и поиграть с ним

Спасибо

0
04.07.2017, 00:51
2 ответа

Попробуйте это (проверено на GNU Awk 3.1.7):

awk '{sub(/\./,"");sub(/kbps/,"000");sub(/mbps/,"000000")}1' foo.csv
0
28.01.2020, 04:44

Это должно решить вашу проблему:

awk -F, '
         BEGIN{OFS=FS}
         /kbps/{gsub("kbps","",$1);$1=$1*1000};
         /mbps/{gsub("mbps","",$1);$1=$1*1000000}
         1' file.csv
0
28.01.2020, 04:44

Теги

Похожие вопросы