#regex #ide #editor #replace
#регулярное выражение #ide #редактор #заменить
Вопрос:
Мне было интересно, какие варианты добавления тегов к каждой строке известны людям.
Допустим, у меня есть 100 элементов, которые мне нужно поместить в строковый массив
<resources>
<string-array>
item001
item002
item003
...
</string-array>
</resources>
Что мне нужно, так это каким-то образом обернуть каждую строку или каждую строку с элементами в ней, например:
<resources>
<string-array>
<item>item001</item>
<item>item002</item>
<item>item003</item>
...
</string-array>
</resources>
Я был бы признателен за решение, достижимое на вашем обычном компьютере Linux. Пожалуйста, никаких windows / osx. Спасибо!
Комментарии:
1. К вашему сведению, я использую Eclipse для разработки Android.
Ответ №1:
как вы и хотели, решение awk под Linux
awk '!/<.*>/ amp;amp; $0{gsub(/^[ t] /,"",$0);$0="<item>"$0"</item>"}1' yourXml
протестируйте свой сниппет:
kent$ echo "<resources>
<string-array>
item001
item002
item003
...
</string-array>
</resources>
"|awk '!/<.*>/ amp;amp; $0{gsub(/^[ t] /,"",$0);$0="<item>"$0"</item>"}1'
вывод
<resources>
<string-array>
<item>item001</item>
<item>item002</item>
<item>item003</item>
<item>...</item>
</string-array>
</resources>
Ответ №2:
Установите флажок регулярных выражений в диалоговом окне Eclipse «Найти и заменить», а затем замените
(^s*)([^<rn] $)
с
1<item>2<item>
Комментарии:
1. Хорошо, это полезно знать. Спасибо, но я, возможно, ввел в заблуждение, приведя пример item001, 002, 003 . На самом деле, каждая строка содержит случайный текст … никоим образом не последовательный. Есть ли способ использовать регулярное выражение для каждой строки?