@esQmo Ну вот, опять этот ад Извлечение SIM-карты также требуется острый инструмент, который я не ношу с собой везде. Смешно, что я не могу использовать мой мобильный телефон просто потому, что я забыл второй SIM-карты PIN-код, который мне не нужен на данный момент. @Ian_Fin рецензент скопированный текст из папки лист бумаги и подал скопированный текст своей рецензии. Я не уверен, что не ясно в моем вопросе? Я могу открыть файл с помощью страниц диалоговое окно открытия файла просто отлично. Проблема в том, что "использование в AppArmor, чтобы предотвратить Skype от нагрузки сни-Кварты" не работает со Skype установлен из репозиториев Ubuntu по умолчанию. При попытке запустить 'Skype' я просто получаю информацию о том, что для /usr/Бен/разрешение скайпу отказано. Другое дело, что там нет иконки для этого приложения. Использую Ubuntu 13.04. Я могу вам помочь?

Я googled вокруг много, по этому и кажется, нет предвестником такой необходимости.

Мне нужно, чтобы изменить предпочтения приложений файл программно : как часть сценария оболочки.

и префов хранятся в строгом формате JSON : это означает, что приложение нагрузки, что предпочтение файла произойдет сбой при запуске, если стоит запятая , перед закрывающей фигурной скобкой }.

обычно это не было бы проблемой.

Я бы просто использовать мои СЭДс соответственно : если строка содержит мой неисправный строк текста в конце раздела В моем примере файл, то при замене этот текст я буду всегда ставить ее без запятой.

Если другой строки, содержащей другой неисправный бит я хочу заменить не в конце, я всегда заменит его, включая запятую.

Пример :

(Я использую символ подчеркивания _ в моем ГДР разделитель, потому что жал на замену полны обратные слеши иногда)

СЕПГ -я 's_"executableDecorator".*_"executableDecorator": "'$user_path'/фар/выполнить \\"с %S\"",_' $user_path/.faforever/клиента.префов

если строка в конце :

СЕПГ -я 's_"executableDecorator".*_"executableDecorator": "'$user_path'/фар/выполнить \\"с %S\""_' $user_path/.faforever/клиента.префов

это будет работать, но!...

У меня есть приложение, прежде, чем я запустить мой скрипт так, что и не редактируя настройки в то же время, но даже до сих пор, из-за асинхронного выполнения этого приложения в настройках мой скрипт будет получать будет отличаться каждый раз.

все это совершенно случайно.

иногда линия может быть в середине, иногда в конце. Самого приложения (Java и некоторых данных JSON в Java Либ) знает как добавить запятую или нет в зависимости от контекста, но как часть моего скрипта... я чувствую, что дела идут, чтобы получить раздутый.

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

Но я ищу утилиты POSIX, которая фиксирует в формате JSON, так что я могу "санировать" мой JSON в файл prefs, как только я закончу потрошить все это в мой скрипт ...не такая вещь существует?

Редактировать :

вот базовый файл (весь файл ) :

{
 "файл MainWindow": {
 "ширина": 800,
 "высота": 600,
 "развернуто": ложные,
 "lastView": "новости",
 "lastChildViews": {},
 "х": 67.0,
 "г": 27.0
},
 "forgedAlliance": {
 "customMapsDirectory": "/домашний/Т/мои игры/Игры/Верховный Главнокомандующий кованой Союз/карты",
 "preferencesFile": "/дом/Т/.вино/диск_с/пользователи/Т/данных приложений/игры/Верховный Главнокомандующий кованые Альянс/игра.префов",
 "officialMapsDirectory": "/дом/Т/фар/./Карты",
 "modsDirectory": "/домашний/Т/мои игры/Игры/Верховный Главнокомандующий кованые альянса/Моды",
 "порту": 6112,
 "autoDownloadMaps": правда,
 "executableDecorator": "\"%ы\""
},
 "логин": {
 "имя": "Тацу",
 "пароль": "*******",
 "автологина": правда
},
 "чат": {
 "зум": 1.0,
 "learnedAutoComplete": ложные,
 "previewImageUrls": правда,
 "maxMessages": 500,
 "chatColorMode": "таможня",
 "channelTabScrollPaneWidth": 250,
 "userToColor": {},
 "hideFoeMessages": правда,
 "timeformat компонента": "авто",
 "chatFormat": "компактный",
 "idleThreshold": 10
},
 "уведомления": {
 "soundsEnabled": правда,
 "transientNotificationsEnabled": правда,
 "mentionSoundEnabled": правда,
 "infoSoundEnabled": правда,
 "warnSoundEnabled": правда,
 "errorSoundEnabled": правда,
 "friendOnlineToastEnabled": правда,
 "friendOfflineToastEnabled": правда,
 "ladder1v1ToastEnabled": правда,
 "friendOnlineSoundEnabled": правда,
 "friendOfflineSoundEnabled": правда,
 "friendJoinsGameSoundEnabled": правда,
 "friendPlaysGameSoundEnabled": правда,
 "friendPlaysGameToastEnabled": правда,
 "privateMessageSoundEnabled": правда,
 "privateMessageToastEnabled": правда,
 "friendJoinsGameToastEnabled": правда,
 "notifyOnAtMentionOnlyEnabled": ложные,
 "afterGameReviewEnabled": правда,
 "toastPosition": "BOTTOM_RIGHT",
 "toastScreen": 0,
 "toastDisplayTime": 5000
},
 "themeName": "по умолчанию",
 "lastGameType": "фаф",
 "локализация": {},
 "rememberLastTab": правда,
 "showPasswordProtectedGames": правда,
 "showModdedGames": правда,
 "ignoredNotifications": [],
 "lastGameMinRating": 800,
 "lastGameMaxRating": 1300,
 "ladder1v1": {
 "фракции": [
"АЕОН",
"кибран",
"Уэф",
"Серафим"
]
},
 "новости": {
 "lastReadNewsUrl": "http://direct.faforever.com/2019/03/king-of-badlands-tournament-march-30th/"
},
 "застройщик": {
 "gameRepositoryUrl": "https://github.com/FAForever/fa.git"
},
 "vaultPrefs": {
 "onlineReplaySortConfig": {
 "sortProperty": "оно",
 "порядок сортировки": "деск"
},
 "mapSortConfig": {
 "sortProperty": "статистика.играет",
 "порядок сортировки": "деск"
},
 "modVaultConfig": {
 "sortProperty": "последнюю версию.createtime у",
 "порядок сортировки": "деск"
}
},
 "gameListSorting": [],
 "gameTileSortingOrder": "PLAYER_DES",
 "unitDataBaseType": "RACKOVER",
 "storedCookies": {},
 "lastGameOnlyFriends": ложные
}

единственное что имеет значение-это "forgedAlliance" :

 "forgedAlliance": {
 "customMapsDirectory": "/домашний/Т/мои игры/Игры/Верховный Главнокомандующий кованой Союз/карты",
 "preferencesFile": "/дом/Т/.вино/диск_с/пользователи/Т/данных приложений/игры/Верховный Главнокомандующий кованые Альянс/игра.префов",
 "officialMapsDirectory": "/дом/Т/фар/./Карты",
 "modsDirectory": "/домашний/Т/мои игры/Игры/Верховный Главнокомандующий кованые альянса/Моды",
 "порту": 6112,
 "autoDownloadMaps": правда,
 "executableDecorator": "\"%ы\""
},

Я запускаю команд, чтобы получить это :

 "forgedAlliance": {
 "путь": "/дом/Т/.паровая/паровая/steamapps/общие/Верховный Главнокомандующий кованый Альянс",
 "путь_установки": "/дом/Т/.паровая/паровая/steamapps/общие/Верховный Главнокомандующий кованый Альянс",
 "customMapsDirectory": "/домашний/Т/мои игры/Игры/Верховный Главнокомандующий кованой Союз/карты",
 "preferencesFile": "/дом/Т/.паровая/паровая/steamapps/compatdata/9420/личные/диск_с/пользователи/steamuser/местные Настройки/Использование данных/газ Верховным Главнокомандующим игры/кованые Альянс/игра.префов",
 "officialMapsDirectory": "/дом/Т/фар/./Карты",
 "modsDirectory": "/домашний/Т/мои игры/Игры/Верховный Главнокомандующий кованые альянса/Моды",
 "порту": 6112,
 "autoDownloadMaps": правда,
 "executableDecorator": "/домашний/Т/фаф/выполнить \"на %S\""
},

команды, которые работают (в стандартном случае, когда ситуация не передвигаться) являются :

если ! команда grep -Q', то"путь"' $user_path/.faforever/клиента.префов > /dev/нуль
тогда
 СЕПГ -я 12 и"путь": "'$user_path'/.паровая/паровая/steamapps/общие/Верховный Главнокомандующий кованый Альянс",' $user_path/.faforever/клиента.префов
 СЕПГ -я 13i"путь_установки": "'$user_path'/.паровая/паровая/steamapps/общие/Верховный Главнокомандующий кованый Альянс",' $user_path/.faforever/клиента.префов
интернет
! команда grep -Q', то"preferencesFile": "'$user_path'/.паровая/паровая/steamapps/compatdata/9420/личные/диск_с/пользователи/steamuser/местные Настройки/Использование данных/газ Верховным Главнокомандующим игры/кованые Альянс/игра.префов",' $user_path/.faforever/клиента.префов > /dev/нуль && СЭД -я 's_"preferencesFile".*_"preferencesFile": "'$user_path'/.паровая/паровая/steamapps/compatdata/9420/файл/диск\ ° С/Пользователи/steamuser/Параметры/данных приложений/газа Верховный Главнокомандующий игры/кованые Альянс/игра.префов",_' $user_path/.faforever/клиента.префов
! команда grep -Q', то"executableDecorator": "'$user_path'/фар/",' $user_path/.faforever/клиента.префов > /dev/нуль && СЭД -я 's_"executableDecorator".*_"executableDecorator": "'$user_path'/фар/выполнить \\"с %S\""_' $user_path/.faforever/клиента.префов