2013-01-21 63 views
0

我想使用csh腳本提取所有出現在第一次出現「/>」符號前的文本。 我嘗試下面的代碼如何使用csh從XML中「/>」提取字符串?

集產品3 = echo "$product1" | sed 's/\/>$//'

BT我得到的輸出是字符串存在的「/>」

請幫最後一次出現之前!

+0

對不起,我不明白「bt它給的字符串存在...」。請編輯您的腳本並粘貼您收到的exacct錯誤消息。你的'set'語句中沒有2'='符號嗎?如果你在上面的問題中包含了'product1'的定義,那麼它也會非常有幫助,然後我們可以在我們自己的計算機上進行測試。最後,說你問題的另一個陳述是刪除'/>'後的所有文本是否正確?如果是這樣,'sed's /\/>.*$//''似乎更合適。祝你好運。 – shellter

+0

也看到這個問答重XML我的評論:http://stackoverflow.com/questions/14450624/script-to-find-line-in-one-file-and-replace-in-another-osx#comment20125574_14450624。祝你好運。 – shellter

回答

1

sed更換是關閉的只是有點:

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

使用.*會導致SED貪婪地消耗所有從第一場比賽的字符,直到字符串的結尾,我認爲這是你想要什麼。