0
我發的文件的文件名匹配的數組中匹配模式:搜索和刪除模式陣列的
lista=($(grep -El "<LastVisitedURL>.+</LastVisitedURL>.*<FavoriteTopic>0</FavoriteTopic>" *))
現在,我會刪除一個文件INDEX.XML所有標籤外殼包含在文件名陣列。
for e in ${lista[*]}
do
sed '/\<TopicKey FileName=\"$e\"\>.*\<\/TopicKey\>/d' index.xml
done
完整的腳本是:
#! /bin/bash
#search xml files watched and no favorites.
lista=($(grep -El "<LastVisitedURL>.+</LastVisitedURL>.*<FavoriteTopic>0</FavoriteTopic>" *))
#declare -p lista
for e in ${lista[*]}
do
sed '/<TopicKey FileName=\"$e\">.*<\/TopicKey>/d' index.xml
done
即使正則表達式模式行不通,在sed在地方INDEX.XML編輯-i
選項,重新加載索引文件多少次名怎麼有數組,這是不好的。
有什麼建議嗎?
要編輯XML文件,使用'xmlstarlet' –
xmlstarlet是有用的。感謝Quenot和所有人。 – chuy