Я думаю, что это может сработать
@Query("{'$or':[ {'A':10}, {'B':20} ] }")
Много приложений используют библиотеку проклятий или некоторую привязку к языку к ней.
Для перезаписи на одной строке, такой как обновление информации о прогрессе, специальный символ "возврат каретки", часто указываемый escape-последовательностью "\r", может возвратить курсор запуску текущей строки, позволяющей последующий вывод перезаписывать то, что было ранее записано там.
попробуйте этот сценарий оболочки
#!/bin/bash
i=1
while [ true ]
do
echo -e -n "\r $i"
i=$((i+1))
done
-n опции предотвращают новую строку..., и \r делает возврат каретки... Вы пишете снова и снова в ту же строку - никакая прокрутка или что так когда-либо
Существуют символы, которые могут быть отправлены на терминал, которые кладут обратно курсор. Затем текст может быть перезаписан.
Здесь существует список. Отметьте "курсор перемещения что-то" строки.
NCurses является межплатформенной библиотекой, которая позволяет Вам потянуть пользовательские интерфейсы на умных терминалах.
При завершении строки, отправленной на терминал с возвратом каретки ('\r') вместо перевода строки ('\n'), он переместит курсор в начало текущей строки, позволяя программе распечатать больше текста по вершине того, что он распечатал прежде. Я иногда использую это для сообщений о ходе выполнения для долгих задач.
Если когда-нибудь необходимо делать больше терминального редактирования, чем это, используйте ncurses или вариант этого.
Раздражительный капрал ответил, как это сделано на самом низком уровне. Для более легкой разработки библиотека проклятий дает более высокий уровень управления, чем просто передающие символы к терминалу.
Для построения на ответе @Corporal Touchy существуют библиотеки, доступные, который обработает часть этой функциональности для Вас, такой как curses/ncurses
Я соглашаюсь с danio, ncurses является способом пойти. Вот хорошее учебное руководство:
В том, что вы показываете, происходит двойное кодирование. Достаточно двух шагов:
andy _ test
- это как последовательность в программном обеспечении, так и фактическое имя каталога или сценария в файловой системе (ресурс, к которому обращается веб-сервер)
andy% 5Ftest
- это andy _ test
в кодировке URL. Эта последовательность должна использоваться браузером (она не нужна в случае подчеркивания, но может быть и в других случаях).
andy% 255 fest
- это только andy _ test
URL-адрес, закодированный дважды, что не имеет смысла, нет необходимости. Просто решите, ГДЕ вы будете делать кодировку. Если вы делаете это как на уровне кода, так и на уровне веб-сервера, это то, что может произойти, и в результате нарушаются ссылки, если вы не декодируете два раза снова, что на самом деле не нужно и не разумно.
Не следует кодировать имена каталогов при их создании (как предлагалось). Кодирование должно происходить только на последнем этапе, когда оно передается браузеру. Вот почему вы заканчиваете с двойной кодировкой:% 25 - это%, а 5F - это остаток от первой кодировки подчеркивания.
Также обратите внимание, что кодирование подчеркиваний в соответствии с rfc1738 не требуется.
-121--3894424-2.2. Проблемы кодирования символов URL
...
Таким образом, только буквенно-цифровые символы, специальные символы «$ - _. +! * '(),» и зарезервированные символы, используемые в зарезервированных целях, могут использоваться не закодирован в URL-адресе.
В зависимости от терминала вы отправляете управляющие последовательности. Общими последовательностями являются, например, esc [; H для отправки курсора в определенную позицию (например, на Ansi, Xterm, Linux, VT100). Однако это зависит от типа или терминала пользователя... проклятия (в сочетании с файлами terminfo) переносят эту информацию для вас.