Как преобразовать односимвольный в двухсимвольный элемент слова с помощью команд обработки текста bash?

0

У меня есть много таких скриптов в папке:

INSERT INTO fv_xml_binary_adim VALUES (1, '<FeatureVector><feature>project</feature><feature>w</feature><feature>focus</feature><feature>d</feature><feature>new</feature><feature>cut</feature><feature>tool</feature><feature>design</feature><feature>allow</feature><feature>increas</feature><feature>high</feature><feature>speed</feature><feature>machin</feature><feature>hsm</feature><feature>product</feature></FeatureVector>');

Я хочу использовать односимвольные элементы и преобразовывать их в двухсимвольные элементы. Я хочу преобразовать команду выше в:

INSERT INTO fv_xml_binary_adim VALUES (1, '<FeatureVector><feature>project</feature><feature>w0</feature><feature>focus</feature><feature>d0</feature><feature>new</feature><feature>cut</feature><feature>tool</feature><feature>design</feature><feature>allow</feature><feature>increas</feature><feature>high</feature><feature>speed</feature><feature>machin</feature><feature>hsm</feature><feature>product</feature></FeatureVector>');

Как я могу сделать это с помощью команды sed или другой команды обработки текста bash?

Теги:
awk
sed

3 ответа

2
Лучший ответ

с sed

$ sed -E 's/>(.)</>\10</g' file
0

Вы можете попытаться использовать Regex с sed

sed -i -E "s%(feature>)([az]{1})(</feature)%\1\20\3%g" file

0

С помощью sed вы можете использовать:

sed 's/>\([a-z]\)</>\10</g'

Это преобразует >w< в >w0< и т.д.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню