LINUX.ORG.RU

История изменений

Исправление theNamelessOne, (текущая версия) :

Расскажи мне как это на чём-то другом сделать? sed 's/ /_/g' не катит из-за возможных пробелов в значениях.

sed не знаю дальше примитивных замен на регулярках, так что за него не скажу, но C тут и вправду ни к чему. Задача решается элементарно в «скриптовых» языках с нормальной поддержкой строк, вот тебе однострочник на Ruby:

$ ruby -pe 'gsub(%r|</?[^>]+>|) { |m| m.tr " ", "_" }' input.txt
	<Mode_Number>1</Mode_Number>
	<Min_Set_Temp>200</Min_Set_Temp>
	<Max_Set_Temp>550</Max_Set_Temp>
	<Default_Temp>350</Default_Temp>

Исходная версия theNamelessOne, :

Расскажи мне как это на чём-то другом сделать? sed 's/ /_/g' не катит из-за возможных пробелов в значениях.

sed не знаю дальше примитивных замен на регулярках, так что за него не скажу, но C тут и вправду ни к чему. Задача решается элементарно в «скриптовых» языка с нормальной поддержкой строк, вот тебе однострочник на Ruby:

$ ruby -pe 'gsub(%r|</?[^>]+>|) { |m| m.tr " ", "_" }' input.txt
	<Mode_Number>1</Mode_Number>
	<Min_Set_Temp>200</Min_Set_Temp>
	<Max_Set_Temp>550</Max_Set_Temp>
	<Default_Temp>350</Default_Temp>