Для CentOS пакет rdesktop находится в репозитории nux -dextop. Вам нужно установить репозиторий, а затем rdesktop:
sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
sudo yum install rdesktop
Краткий ответ :Установитьjq
Вы не должны анализировать json без парсера json.
Чтобы сделать это с помощьюjq
:
echo "$json" | jq -r '.access_token'
Я предпочитаю парсер json json ,используя его, вы могли бы сделать:
echo "$json" | json access_token
Примечание:оба этих решения предполагают, что ваш json-объект точно (или, по крайней мере, почти точно ), как вы показали в своем примере, и я знаю, что это не так.
Если вы не можете установить синтаксический анализатор json, то, предполагая, что ваши строки не могут содержать двойные кавычки или символы новой строки, каждая запись находится в одной строке, а каждый тег и значение являются строками, заключенными в двойные -кавычки -, как в вашем разместил образец ввода, это будет работать с использованием любого awk в любой оболочке на каждом компьютере UNIX:
$ cat tst.awk
{
while ( match($0,/"[^"]*"/) ) {
hit = substr($0,RSTART+1,RLENGTH-2)
if ( ++cnt % 2 ) {
tag = hit
}
else {
val = hit
f[tag] = val
}
$0 = substr($0,RSTART+RLENGTH)
}
print f[tgt]
}
$ echo "$json" | awk -v tgt='access_token' -f tst.awk
kjdshfsd
$ echo "$json" | awk -v tgt='key2' -f tst.awk
value