С помощью XmlStarlet:
xml ed -d '//midget[@action="D"]/*[
descendant::list[@name="%%PromotionProductInstanceId%%"] and
descendant::list[@value="ALL"]]/list[
@name="%%PromotionProductInstanceId%%" or @value="ALL"]'
Подробно:
://midget
action="D"
:[@action="D"]
name="%%PromotionProductInstanceId%%"
:descendant::list[@name="%%PromotionProductInstanceId%%"]
value="ALL"
:descendant::list[@value="ALL"]
list[@name="%%PromotionProductInstanceId%%" or @value="ALL"]
Фактически вы можете использовать awk
для всей задачи:
df | awk '$1~/^Shared/ || $1~/^\/dev\/sda1/ {total+=$2;used+=$3} END{printf("%.2f\n",100*used/total)}' > EmmcSpace.txt
добавит столбцы «1k блоков» и «используется» для всех строк, начинающихся с /dev/sda1
и Shared
в переменных total
и used
соответственно, и напечатает отношение сумм в конце.
Затем вывод перенаправляется в файл EmmcSpace.txt
.