LinuxForum.Fans
Тема

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

Автор: inux 6 сообщений 3505 просмотров
#365508

И снова я )

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

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

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

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

спасибо!

#365570

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

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

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

#365572

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

#365573

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

#365581
text

█▓▒░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
#365876

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

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

Войдите или зарегистрируйтесь, чтобы ответить.