Если вы делаете многое с преобразованием json в командной строке, это стоит вашего времени, чтобы получить инструмент jq и научиться использовать его.
Хотя ответы выше показывают, что вы можете сделать минимальные преобразования без фактического разбора json, в конечном итоге вы либо заново изобретете buggy json parser через regexp или вернетесь к использованию собственного json parser на вашем языке выбора.
jq является быстрым, простым в использовании и очень удобным инструментом, чтобы иметь в вашем инструментарии.
BWT, ваши тестовые данные недействительны json, что усложнит приведенные выше решения. Если вы исправите его на
{ "a":123 , "b": "sd", "c": "x45", "d": 1, "e": "" }
{ "a":5 , "b": "bfgg", "c": "x4c", "d": 31, "e": "" }
Тогда эта команда jq действительно захочет, чтобы
jq -c '{a,b,c}' test.json
{"a":123,"b":"sd","c":"x45"}
{"a":5,"b":"bfgg","c":"x4c"}
-121--78057-
С помощью smbclient , установленного на машине * nix, вам вообще не нужно монтировать общий ресурс Windows. Например, чтобы получить файл C :\Directory\file.txt и скопировать его в/tmp на компьютере с Linux, выполните следующие действия:
smbclient '//windowsserver/c$' -c 'lcd /tmp; cd Directory; get file.txt' -U administrator%password
Для получения дополнительной информации см. https://superuser.com/a/562728/48742 . Это обсуждалось там.
-121--40865-
Да, ваша стандартная версия не является POSIX-стандартной, как вопрос, связанный с примечаниями. Однако следующее:
if some-command args; then ...
Я бы сказал, что это единственная портативная форма , если
, так как, это то, о чем , если
все. если
что-то делает, если some-command
(которая может быть функцией, конструкцией оболочки или исполняемым файлом 1 ) возвращает 0
для аргументов и входных данных, с которыми она выполняется.
При запуске , если []
или , если [[]]]
,
и [[]]
- это программы или сборки оболочек, возвращающие 0
, если условие имеет значение true. При преобразовании [
в test
вы увидите, что форма всегда выполняется без скобок:
if [ ... ]
# same as
if /bin/test ...
1 Для большей точности рассмотрим, как , если
конструкция определена :
Команда , если должна выполнить составного списка и использовать ее выход для определения необходимости выполнения другого составного списка .
Формат конструкции if следующий:
if compound-list тогда составный список [elif компаунд-лист тогда компаунд-лист]... [остальное компаунд-лист] fi
Обратите внимание, что составной список не совпадает с составной командой .
Я думаю, что вы пропустили раздел '13 .4.3. Сделать резервную копию ». LVM можно использовать, чтобы принять копию данных в момент времени, поэтому у вас есть последовательный ** изображение этих данных. Таким образом, вы можете использовать другой инструмент (например, tar, fbackup etc) для выполнения фактического резервного копирования. Если вы хотите использовать LVM в качестве механизма резервного копирования само по себе, да, вам нужно сделать снимок LVM.
** В примере появляются снимки LVM (с этикетки) для баз данных. Любое приложение или базу данных, работающая на LVM, должна быть остановлена перед снимком, чтобы обеспечить согласованность (если база данных / приложения не имеет поддержки для резервных копий LVM).