заменить запятую на определенное значение столбца

У меня есть файл, который содержит 6 столбцов, каждое поле, разделенное «I», второе второе столбец содержит поле суммы.

140121059|01/01/201400:00:45|[1390]|[387]|17.64|10 140121060|01/01/201400:00:46|[1112]|[867]|26.46|10 140121062|01/01/201400:00:47|[182]|[13]|4,117.60|10 140121065|01/01/201400:00:48|[1088]|[385]|1,147.04|10 

Я хочу удалить «,» из столбца количества, так как Im не смог выполнить некоторые операции над этим столбцом. «,» не входит во все столбцы. И я использую bash.

3 Solutions collect form web for “заменить запятую на определенное значение столбца”

Вы можете использовать awk :

 $ awk -F'|' '{sub(",","",$(NF-1))}1' OFS='|' file 140121059|01/01/201400:00:45|[1390]|[387]|17.64|10 140121060|01/01/201400:00:46|[1112]|[867]|26.46|10 140121062|01/01/201400:00:47|[182]|[13]|4117.60|10 140121065|01/01/201400:00:48|[1088]|[385]|1147.04|10 

$(NF-1) относится ко второму к последнему полю, мы заменяем запятую только в этом поле.

Если вы хотите удалить запятую во всем поле, вы можете использовать tr вместо:

 $ <file tr -d ',' > out_file 

Предполагая, что ваш файл содержит запятую только в поле amount , вы можете использовать команду, как показано ниже.

  sed 's/,//g' filename 

Я бы просто использовал sed:

 sed 's/,//g' filename 
  • конвертировать шестнадцатеричные в двоичные
  • Добавить ;; вверху и внизу каждого файла в списке
  • вставить символ в начале указанной строки в файле
  • Команда для подсчета и группировки в столбцы
  • Как настроить числовые поля в текстовом файле
  • скопировать заголовок в каждую ячейку своей строки
  • удалить последние два символа из каждой строки
  • Сравнение 2 файлов со вторым файлом, содержащим подмножество данных из файла 1
  • Фильтр Требовать капитальные слова из файла (не все заглавные слова)
  • сравнение двух столбцов
  • Перестановка первых двух слов каждой строки без использования sed
  • Диагональный вывод файла
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.