Отключите Щелчок правой кнопкой по файлу (Openbox, LXDE, Pcmanfm)

Как я понимаю, вы ищете значение "Фу". Это действительно легко сделать с помощью инструмента командной строки оболочки jq. Это что-то вроде sed в том, что он реализует свой собственный тип парсерного языка. В данном примере:

json='
{
    "Reservations" :
     {  
            "OwnerId" : "1345345",
            "Groups" :  [],
            "SecurityGroups" : [
               {
                  "Foo" : "yes",
                  "Bar" : "no"
               }
             ]
     }
}'

jq может получить yes так же просто, как:

printf %s "$json" |
jq '.[].SecurityGroups[0].Foo?'                                                

OUTPUT

"yes"

Вы можете пройтись по хэшу объекта или списку словарных статей, используя нотацию .dot, а индексированные массивы можно проиндексировать проще, с помощью, как Вы, вероятно, догадались, числовых индексов, заключённых в квадратные скобки. В команде выше я использую форму пустого индекса, чтобы показать, что я хочу, чтобы все элементы этого уровня были развернуты. Это может быть проще понять следующим образом:

printf %s "$json" | jq '.[][]'

... который разбивает все значения для элементов второго уровня в хэше и достает меня...

"1345345"
[]
[
  {
    "Foo": "yes",
    "Bar": "no"
  }
]

Это едва царапает поверхность относительно возможностей jq. Это чрезвычайно мощный инструмент для сериализации данных в оболочке, он компилируется в один исполняемый двоичный файл в классическом Unix-стиле, он, скорее всего, доступен через менеджер пакетов для вашего дистрибутива, и он очень хорошо документирован. Пожалуйста, посетите его git-страницу и убедитесь сами.

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

printf %s "$json" | jq '..'

{
  "Reservations": {
    "OwnerId": "1345345",
    "Groups": [],
    "SecurityGroups": [
      {
        "Foo": "yes",
        "Bar": "no"
      }
    ]
  }
}
{
  "OwnerId": "1345345",
  "Groups": [],
  "SecurityGroups": [
    {
      "Foo": "yes",
      "Bar": "no"
    }
  ]
}
"1345345"
[]
[
  {
    "Foo": "yes",
    "Bar": "no"
  }
]
{
  "Foo": "yes",
  "Bar": "no"
}
"yes"
"no"

Но гораздо лучше, вероятно, было бы просто использовать один из множества методов обнаружения или поиска, которые jq предлагает для различных типов узлов.

1
03.02.2015, 12:47
2 ответа
  • В настройках PCManFM переключаются параметр меню «Show Window Manager» (придется нажать Advanced).
  • Удалите строку из / etc / xdg / lxsession / lxde / autostart , который начинает pcmanfm.
  • Изменить OpenBox-LXDE в / etc / xdg / lxsession / lxde / config - openbox .

См. Ссылка и ссылка для получения дополнительных вариантов.

1
28.01.2020, 01:46

Удалите

<mousebind button="Right" action="Press">
<action name="ShowMenu"><menu>root-menu</menu></action>
</mousebind>

из /etc/xdg/openbox/rc.xml , затем перезагрузитесь.

-1
28.01.2020, 01:46

Теги

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