Выборка оценивает из plist файла Linux

В целом можно мешать оболочке интерпретировать метасимвол путем выхода из него с обратной косой чертой (\). Так, можно предотвратить весь $ в rename аргумент от того, чтобы быть расширенным путем предварительного ожидания обратной косой черты:

echo -n `rename "-f" "'s/.*([0-9]{11}_[0-9]{11}).*\.(.*\$)/\$1.\$2/'" "$output_dir"*.$ext`

В данном случае, начиная со строки s/.*([0-9]...$2/ не нуждается ни в каких заменах уровня оболочки (смысл Вашего вопроса - то, как предотвратить их), Вы могли просто включить его в одинарные кавычки (') который предотвращает всю обработку оболочки:

echo -n `rename "-f" 's/.*([0-9]{11}_[0-9]{11}).*\.(.*$)/$1.$2/' "$output_dir"*.$ext`

(Обратите внимание, что Вам не нужны кавычки вокруг -f, так как это не содержит метасимволов оболочки.)

6
31.10.2012, 00:42
2 ответа

С тех пор .plist файлами уже является XML (или может быть легко преобразован), Вам просто нужно что-то для декодирования XML.

Для того использования xml2:

$ cat com.apple.systemsound.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.sound.beep.volume</key>
    <real>1</real>
</dict>
</plist>
$ xml2 < com.apple.systemsound.plist
/plist/@version=1.0
/plist/dict/key=com.apple.sound.beep.volume
/plist/dict/real=1
$ 

Необходимо смочь выяснить остальных.

Или для Perl, use XML::Simple; (см. perldoc для больше) для помещения структуры данных XML в хеш.

2
27.01.2020, 20:25

libplist, кажется, отвечает Вашим требованиям. Существует имя пакета Ubuntu "libplist-utils", что Вы могли сослаться в своем сценарии:

Описание-en: преобразователь списка свойств Apple Этот пакет containt инструменты для преобразования файлов списка свойств Apple от двоичного файла до XML и наоборот. Это - часть стопки libimobiledevice, обеспечивая доступ к продуктам компании Apple (iPod, iPhone, iPad...).

Домашняя страница: http://www.libimobiledevice.org/

Команда Install:

apt-get install libplist-utils

Пример использования:

plistutil -i Info.plist
7
27.01.2020, 20:25

Теги

Похожие вопросы