Тривиально, с условием.
case $line in *icon*) ... do stuff;;
Вы, вероятно, должны исправить синтаксис для использования read -r
, а переменная index
действительно не нужна.
array=()
while read -r line
do
case $line in *icon*) array+=("$line");; esac
done < ../../file.xml
Более разумносделать все это одним махом, в Bash 4 +
readarray index < <(grep 'icon' ../../file.xml)
Вероятно, наиболее разумно, если файл действительно является XML, используйте синтаксический анализатор XML, такой как xmlstarlet
, чтобы правильно определить и извлечь нужную структуруизучить.
readarray index < <(xmlstarlet sel -t -m //icon -c . -n ../../file.xml)