Как удалить запятую из файла csv с кавычками?

Мои вводные:

Name, Country, City
Jason, US, Memphis, "1,000"
David, US, Little Rock, "8,765,453"
"Karam, Sage", US, Nazareth, "4,678"
"David, simon", US, Chicago, "1,234"

Я хочу выводить как:

Name, Country, City
Jason, US, Memphis, "1000"
David, US, Little Rock, "8765453"
"Karam, Sage", US, Nazareth, "4678"
"David, simon", US, Chicago, "1234"

Я хочу удалить запятую только с 4-й столбец, а не первый столбец.

0
14.09.2017, 10:01
2 ответа

Или с перлом:

perl -pe 's/(\d),(\d)/$1$2/g' infile.txt

который просто удаляет все запятые, окруженные цифрами (\d ).

Я предположил, что удаление разделителей тысяч было сутью в вашей задаче -а не в какой колонке стоят запятые.

0
28.01.2020, 04:40

Я рекомендую вам использовать парсер CSV для данных CSV :ruby ​​имеет один

ruby -rcsv -e '
  data = CSV.read(ARGV.shift, :col_sep => ", ")
  out = CSV.new($stdout, :col_sep => ", ")
  data.each {|row| row[-1].delete! ","; out << row}
' file.csv
Name, Country, City
Jason, US, Memphis, 1000
David, US, "Little Rock", 8765453
"Karam, Sage", US, Nazareth, 4678
"David, simon", US, Chicago, 1234
0
28.01.2020, 04:40

Теги

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