Как заменить значения в строке с помощью sed, но сохранить строку неповрежденной

Как заменить значения в строке с помощью sed, но сохранить строку в целости?

Например, echo "01XX1234"

Я хочу заменить XX шестнадцатеричным значением и оставить 01 и 1234 целыми. Я пробовал каждую комбинацию, о которой я могу думать, но sed становится лучше меня.

Я могу сделать это так, но есть ли более простой способ?

 echo "01XX1234" | sed -n 's/\(01..1234\)/01AB1234/g' 

2 Solutions collect form web for “Как заменить значения в строке с помощью sed, но сохранить строку неповрежденной”

sed заменит только совпадающую подстроку строки.

 $ echo '01XX1234' | sed 's/XX/AF/' 01AF1234 

Если вы намерены всегда заменять третий и четвертый персонажи, но сохраните первый и второй неповрежденные, вы можете использовать:

 $ echo '01XX1234' | sed 's/\(.\{2\}\).\{2\}/\1AF/' 01AF1234 
  • \{2\} означает два вхождения символа, стоящего прежде (в данном случае: любой символ)
  • \(...\) круглые скобки используются для создания соответствующей группы; вы можете ссылаться на подстроку подстроки позже в шаблоне или в заменяющей строке
  • \1 относится к первой подобранной подстроке (в данном случае, то есть «01»)

echo "01XX1234" | sed 's/XX/AB/'

или
echo "01XX1234" | sed 's/\(01\).*\(1234\)/\1AB\2/'

  • Как использовать переменные в команде sed
  • Как сортировать и присоединяться в соответствии с номером / счетчиком внутри файла?
  • Как использовать awk или sed для преобразования строк в столбцы
  • grep все строки, начинающиеся с определенного символа, и заканчиваются другим символом
  • Как добавить оператор if (относительно пунктуации в слове) к этому сценарию bash
  • Частота слов в тексте на неанглийском языке: как я могу объединить единичные и множественные формы и т. Д.?
  • Сценарий оболочки для списка заблокированных пакетов во FreeBSD
  • Как избежать повторения команд sed при добавлении сайтов в лак?
  • Переменная в sed
  • Заменить кратчайшее совпадение строкового рисунка
  • Найти и заменить с помощью sed с помощью подстановочных знаков при поиске и замене
  • Linux и Unix - лучшая ОС в мире.