Возможности поиска и замены Regex для добавления тегов <beg>и </end> в каждую строку: - PullRequest
1 голос
/ 03 ноября 2011

Мне было интересно, какие у меня есть варианты добавления тегов к каждой строке.

Скажем, у меня есть 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, пожалуйста. Спасибо!

Ответы [ 2 ]

2 голосов
/ 03 ноября 2011

, как вы хотели, решение awk под Linux

awk '!/<.*>/ && $0{gsub(/^[ \t]+/,"",$0);$0="<item>"$0"</item>"}1' yourXml

тест с вашим фрагментом:

kent$  echo "<resources>
    <string-array>
    item001
    item002
    item003
        ...
    </string-array>
</resources>
"|awk '!/<.*>/ && $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>
1 голос
/ 03 ноября 2011

Установите флажок регулярных выражений в диалоговом окне Eclipse «Найти и заменить», а затем замените

(^\s*)([^<\r\n]+$)

на

\1<item>\2<\item>
...