Как вставить строку между двумя последовательными,?

Я хочу вставить строку, возможно, NA между двумя последовательными,.

Это моя строка.

 5 Local A2A SMS valid for 1 day , 10 A2A SMS valid for 2 days , 10 Local A2A SMS for 2 days only , Daily 5 Local A2A night SMS for 2 days , daily 5 local A2A night SMS for 7 days ,,,,, 5 local A2A night SMS for 2 days ,,, Outgoing Rs 40/min and Incoming Rs 30/min. Applicable only on selected countries and Operators ,,, Outgoing Rs 30/min and Incoming Rs 20/min. Applicable only on selected countries and Operators ,,,,,,,,, 5 Local night A2A SMS(11PM to 6 AM-2 days) ,, 5 Night A2A SMS for 1 Day ,, Roaming Tariff - Incoming Free, Outgoing local @ 80p/min, STD @1.15Rs/min with Talk Time 25 in main A/c ,,, 5 night local A2A sms (2 Days) ,,, Top up TT in Main a/c 95.79 + 5 A2A Night SMS. SMS valid for 2 days ,,, 300 MB 3G/4G Data , 138.51 TT(unltd val)+5 nite A2ASMS, SMS valid for 2 days , Roaming Tariff - Incoming Free, Outgoing local @ 80p/min, STD @1.15Rs/min with Talk Time 120 in main A/c ,, 500 MB 3G/4G data for 30 Days , 2 SMS valid for 2 days , 1Gb 3G/4G and 100TT , 1.5GB 3G/4G and 100TT , 2GB 3G/4G and 100TT , 2.5GB 3G/4G and 100TT , 3GB 3G/4G and 100TT , 3.5GB 3G/4G and 100TT , 4GB 3G/4G and 100TT , 200 MB 3G/4G Data , Roaming Tariff - Incoming Free, Outgoing local @ 80p/min, 

Например, в строке есть 5 последовательных, 3 последовательных, 6 последовательных запятых. Я хочу вставить NA между каждой запятой.

,,,,, преобразуется в ,NA,NA,NA,NA, т. д.

  • получить первое появление целого в текстовом файле
  • Как удалить ненужную строку строки в строке?
  • Взять ввод из одного файла и добавить в другой файл в конкретном столбце
  • Сравнить два файла
  • Как распечатать разницу в двух текстовых файлах с помощью сценариев оболочки?
  • Есть ли альтернатива команде «sed -i» в Solaris?
  • Как добавить текст в начало строки?
  • команда для извлечения данных между двумя строками
  • 2 Solutions collect form web for “Как вставить строку между двумя последовательными,?”

    С GNU sed:

     echo "your string with commas" | sed ':a;s/,,/,NA,/g;ta' 

    :a : метка с именем a

    s/,,/,NA,/g : искать и заменять все ( g ) ,, на ,NA,

    ta : Если s/// выполнил успешную подстановку, то перейдите к метке a

    Вы можете сделать это в bash следующим образом:

      a="5 Local A2A SMS valid for 1 day , 10 A2A SMS valid for 2 days , 10 Local A2A SMS for 2 days only , Daily 5 Local A2A night SMS for 2 days , daily 5 local A2A night SMS for 7 days ,,,,, 5 local A2A night SMS for 2 days ,,, Outgoing Rs 40/min and Incoming Rs 30/min. Applicable only on selected countries and Operators ,,, Outgoing Rs 30/min and Incoming Rs 20/min. Applicable only on selected countries and Operators ,,,,,,,,, 5 Local night A2A SMS(11PM to 6 AM-2 days) ,, 5 Night A2A SMS for 1 Day ,, Roaming Tariff - Incoming Free, Outgoing local @ 80p/min, STD @1.15Rs/min with Talk Time 25 in main A/c ,,, 5 night local A2A sms (2 Days) ,,, Top up TT in Main a/c 95.79 + 5 A2A Night SMS. SMS valid for 2 days ,,, 300 MB 3G/4G Data , 138.51 TT(unltd val)+5 nite A2ASMS, SMS valid for 2 days , Roaming Tariff - Incoming Free, Outgoing local @ 80p/min, STD @1.15Rs/min with Talk Time 120 in main A/c ,, 500 MB 3G/4G data for 30 Days , 2 SMS valid for 2 days , 1Gb 3G/4G and 100TT , 1.5GB 3G/4G and 100TT , 2GB 3G/4G and 100TT , 2.5GB 3G/4G and 100TT , 3GB 3G/4G and 100TT , 3.5GB 3G/4G and 100TT , 4GB 3G/4G and 100TT , 200 MB 3G/4G Data , Roaming Tariff - Incoming Free, Outgoing local @ 80p/min," b= while [ "$b" != "$a" ] do b="$a" a="${a/,,/,NA,}" done echo "$a" 
    Interesting Posts

    Установка файла изображения btrfs

    Разбор строки в строковой литературе в оболочке

    сравнить строку в bash

    Изменение поведения numpad на dpad в GNOME 3

    Прочитайте файл и найдите все вхождения и создайте хэш для содержимого между вхождениями

    Как передать несколько команд через pssh и несколько xterms

    Экономия времени при компиляции ядра

    Системный раздел EFI поверх MD RAID и LVM

    Как управлять назначением аргументов

    VirtualBox Ubuntu на хосте Windows XP

    Как проверить функцию UPSTART для ubuntu, чтобы увидеть, как мой скрипт автоматически перезапускается, если он убит?

    Сопоставьте все после обратной косой черты и перед пробелом

    Как выбрать системный идентификатор пользователя для пользовательских пакетов (RedHat & compatible)?

    Заменяйте строки, соответствующие шаблону, строками из другого файла в порядке

    Требует ли rsync как хоста-источника, так и целевого хоста запускать rsync в качестве клиента, сервера или демона?

    Linux и Unix - лучшая ОС в мире.