2012-05-01 5 views
1

У меня есть текстовый файл, который содержит строки, как указано нижеSED/AWK как добавить совпавшие строки

<property>PASSWORD_X_1</property> 
<property>PASSWORD_A_2</property> 
<property>PASSWORD_B_6</property> 

так далее так далее ..

Теперь я ищу, чтобы изменить строки:

<property>{PASSWORD_X_1}</property> 
<property>{PASSWORD_A_2}</property> 
<property>{PASSWORD_B_6}</property> 

Я мог бы изменить первоначальный "{", используя простые выражения: патч в

sed -e '/PASSWORD/{PASSWORD/g' 

Невозможно выяснить, как добавить символ «}».

Любые предложения ..?

J

ответ

2

sed -e 's/PASSWORD_[A-Z]_[0-9]/{&}/'

легко изменить!

+0

работает как шарм! Не знал, что '&' означает текущую согласованную строку в sed. Большое спасибо dav1d. – joesatch

2

Это должно работать:

awk -F"<|>" '{ print "<" $2 ">{" $3 "}<" $4 ">" }' file.text

+0

Это сломается, если в этом пароле есть символ < or >. – Chisholm

+0

Спасибо, что ответите Chisholm! Один из решений на основе sed работал отлично для меня. – joesatch

0

Это может работать для вас:

sed 's/PASSWORD[^<]*/{&}/' file 

 Смежные вопросы

  • Нет связанных вопросов^_^