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

У меня есть файл, который содержит 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.

  • Заменить значения некоторых ключей в текстовом файле с одной строкой
  • Как удалить все комментарии из файла, сохраняющего экранированные хэш-символы
  • Печать значений из одного столбца в другой между двумя файлами на основе шаблонов в каждой строке
  • нестрочный инструмент для замены строк?
  • Манипуляция текста: удаление значений x <= $ input из отсортированного списка и обобщения
  • Получение текста от последнего маркера до EOF в POSIX.2
  • Как найти строку в файлеA, выбрать текст из этой строки и заменить строку на fileB?
  • Отображать только повторяющиеся строки, игнорируя первые пробелы x на строку
  • 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 
    Linux и Unix - лучшая ОС в мире.