вставить запятую после последней буквы

Я использую txt-файл, и мне нужно его преобразовать в файл csv

Saint Petersburg 0 10 0.1 - N Moscow - 9 0 - N Novgorod 0 7 1 30 Y 

В bash, как я могу вставить запятую после последней буквы, и после каждого числа или "-"

Например

 Saint Petersburg, 0, 10, 0.1, -, N Moscow, -, 9, 0, -, N Novgorod, 0, 7, 1, 30, Y 

Лучший

  • Как я могу подсчитать количество строк в файле после соответствия grep?
  • Как быстро преобразовать файл .xls (MS Excel) в .csv
  • Анализ файлов CSV для добавления пользователей
  • Удалить строки из файла с разделителями табуляции с отсутствующими значениями
  • Найти все файлы, создать CSV с одной строкой для каждого подкаталога и имена файлов в столбцах
  • Эффективное извлечение данных из нескольких файлов в один файл CSV
  • добавление пустой первой строки внутри файла csv
  • Обертывание длинных ячеек в ЦС, чтобы держать их в одной колонке
  • One Solution collect form web for “вставить запятую после последней буквы”

    Это заменит последовательности из 2 или более пробелов командой и теми же пробелами, которые меньше:

     sed 's/ \( \+\)/,\1/g' file.txt 

    Он будет терпеть неудачу, если между столбцами будет только одно пространство.


    Если вы хотите только ", " в качестве разделителя полей:

     sed 's/ \{2,\}/, /g' file 
    Interesting Posts
    Linux и Unix - лучшая ОС в мире.