Скрипт Bash для проверки строки в последнем столбце файла и преобразования ее в целое число - PullRequest
0 голосов
/ 14 октября 2019

У меня есть образец текстового файла с разделителями-запятыми, который выглядит так:

9ZJ,Name 1,Not Covered,Home Furniture & Decor,Consumer Cyclical,104.0g
H3L,H3llo name,Stopped Coverage,Software - Code,Services,177.0g
ABA,Another name here,Not Covered,Farm - Rural - Country,Farm Services,223.6g
ABC,ABC Name there,4-star Coverage,Home,Bricks & motar,1.9Meg
ABD,Abacus Name Number 1,3-star Coverage,Maths - Science,Further study,2.6Meg

Я хочу проверить строку в последнем столбце, если строка заканчивается на «g», то я хочу манипулироватьстрока и преобразовать его в целое число, по существу, удаляя 'g' из строки в последнем столбце и умножая его на 10, например223.6g становится 2236. Если строка заканчивается на «Мег», то я хочу манипулировать строкой и преобразовать ее в целое число, по существу удаляя «Мег» из строки в последнем столбце и умножая ее на 1000, например. 1.9Мег становится 1900. Как мне выполнить эту манипуляцию со строкой в ​​bash-скрипте?

1 Ответ

0 голосов
/ 14 октября 2019

Использование awk. Твик по мере необходимости ...

za:tmp za$ cat /tmp/file.txt 
9ZJ,Name 1,Not Covered,Home Furniture & Decor,Consumer Cyclical,104.0g
H3L,H3llo name,Stopped Coverage,Software - Code,Services,177.0g
ABA,Another name here,Not Covered,Farm - Rural - Country,Farm Services,223.6g
ABC,ABC Name there,4-star Coverage,Home,Bricks & motar,1.9Meg
ABD,Abacus Name Number 1,3-star Coverage,Maths - Science,Further study,2.6Meg

za:tmp za$ awk -F, '$(NF) ~ /g/ {print $(NF) * 10 }' </tmp/file.txt 
1040
1770
2236
19
26
...