1

И снова я )

помогите решить задачку с условием (если в строчке не соответствие, то вывести сообщение)

/var/mobile/Applications/*/Folder3.app/Info.plist

в файле Info.plist искать версию и если она начинается на <string>2.*
то вывести сообщение "blabla" если <string>3.* то "ок"

    <key>CFBundleShortVersionString</key>
    <string>2.3.3</string>

спасибо!

2

ИМХО удобно это сделать на xpath.
Для bash'а есть неплохой одноимённый перлвый скрипт, идёт в нагрузку к перловому модулю XML-XPath.
Вот тут неплохой букварь с примерами по синтаксису xml: http://www.zvon.org/xxl/XPathTutorial/G … mples.html

если сделать топорно, то можно и sed'ом/grep'ом/awk обойтись.

ЗЫ: тему не закрыл только потому,  что тема «чем парсить xml на bash'е» не имеет простого однозначного решения. Как только обсуждение скатится к «сделайте всё за меня» оно тут же закончится.

95% процентов проблем находятся между клавиатурой и стулом.

3

тему не закрывайте, буду пытаться на sed/grep реализовать

4

xpath как зависимость нужно будет ставить, а не хочется (

5 (12.02.2014 10:35:55 отредактировано Lupo Alberto)

█▓▒░lupo@asus-x201e█▓▒░ Ср фев 12 09:34:40 
/tmp/test/ cat info.plist 
<key>CFBundleShortVersionString</key>
    <string>3.3.3</string>
█▓▒░lupo@asus-x201e█▓▒░ Ср фев 12 09:34:55 
/tmp/test/ cat info1.plist
<key>CFBundleShortVersionString</key>
    <string>2.3.3</string>
█▓▒░lupo@asus-x201e█▓▒░ Ср фев 12 09:35:04 
/tmp/test/ grep "<string>3.*" info.plist > /dev/null && echo OK || echo bla-bla-bla
OK
█▓▒░lupo@asus-x201e█▓▒░ Ср фев 12 09:35:11 
/tmp/test/ grep "<string>3.*" info1.plist > /dev/null && echo OK || echo bla-bla-bla
bla-bla-bla
Был, был и весь вышел...

6

Lupo Alberto,
Огромное спасибо!
Как всегда помогаете.

Позже отпишусь о результатах.