как извлечь строку перед /› из XML с помощью csh?

Я пытаюсь извлечь весь текст, который присутствует до первого появления знака «/>», используя скрипт csh. Я пробовал следующий код

установить продукт3 = echo "$product1" | sed 's/\/>$//'

bt вывод, который я получаю, - это строка, существующая до последнего вхождения "/>"

пожалуйста помоги !!


csh
person XYZ_Linux    schedule 21.01.2013    source источник
comment
Извините, я не понимаю, что строка существует... Пожалуйста, отредактируйте свой сценарий и вставьте точное сообщение об ошибке, которое вы получаете. У вас действительно нет 2 знаков '=' в вашем выражении set , не так ли? Также было бы очень полезно, если бы вы включили свое определение product1 в свой вопрос выше, тогда мы могли бы протестировать его на наших собственных компьютерах. Наконец, правильно ли сказать, что еще одно утверждение вашей проблемы - удалить весь текст ПОСЛЕ />? Если да, то sed 's/\/>.*$// кажется более подходящим. Удачи.   -  person shellter    schedule 22.01.2013
comment
Также см. мой комментарий относительно XML в этом вопросе: stackoverflow.com/questions/14450624/ . Удачи.   -  person shellter    schedule 22.01.2013


Ответы (1)


Ваша sed замена немного отличается:

% echo "<<one/><two/>/>" | sed 's/\/>.*$//'
<<one

использование .* приведет к тому, что sed будет жадно потреблять все символы от первого совпадения до конца строки, что, я думаю, вам нужно.

person radical7    schedule 27.01.2013