искомый текст на терминальном выводе

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

Если первое слово на командной строке является программой, расположенной в специальной папке (главным образом определенный PATH) и никакие более специальные символы не даны (зависит оболочки, которую Вы используете), все последующие слова, разделенные пробелами или вкладками, передаются программе в специальной форме т.е. массиве. С каждым словом как один элемент в массиве.

То, как программа, Вы собираетесь вызвать, интерпретирует аргументы (расположенный в массиве), зависит от того, как это программируется. Существуют некоторые квази стандарты того, как синтаксис аргументов должен быть похожим, но в целом программист цельный свободный. Таким образом, первый аргумент может быть интерпретирован как название файла или безотносительно мыслей программиста в то время, когда он записал программу.

В случае Вы добавляете специальный символ < или > к Вашей командной строке оболочка dosn't добавляет < и > ни последующие слова к массиву, который будет передан программе. С < или > учитывая оболочку начинает делать необычные вещи, поддерживаемые базовым ядром (передача по каналу ключевого слова). Для схватывания, что продолжается, необходимо понять что STDIN и STDOUT (так как это сразу не связано, я опускаю STDERR).

Все видимое, которое Вы видите на своем терминале (в большинстве случаев часть Вашего дисплея) или записано оболочкой или любой другой программой, которую Вы вызвали ранее в специальный файл (в Unix, все - файл). Этот файл имеет специальный идентификатор и назван STDOUT. Если программа хочет считать данные с клавиатуры это, dosn't опрашивают клавиатуру непосредственно (по крайней мере в большинстве случаев), но чтения из специального названного файла STDIN. Внутренне этот файл подключен к Вашему стандартному устройству ввода данных, Вашей клавиатуре в большинстве случаев.

Если оболочка читает < или > в проанализированной командной строке это управляет STDIN или STDOUT в конкретном виде в течение времени работает соответствующая программа. STDIN и STDOUT dosn't указывают на терминал или стандартное устройство ввода данных больше, а скорее на последующее имя файла на командной строке.

В случае этих двух строк

cat file_name
cat < file_name

наблюдаемое поведение идентично, потому что соответствующий разработчик делает cat к любым считанным данным с STDIN или считанный данные из файла, имя которого дано как первый параметр командной строки (который является первым элементом в массиве, которому передает оболочка cat). Впоследствии cat пишет целое содержание file_name или STDIN к терминалу, так как мы не даем оболочке команду управлять STDOUT. Помните, что во второй строке Ваша оболочка управляет STDIN таким образом, то, что это не указывает на Ваше стандартное устройство ввода данных anylonger, но указывает на названный файл file_name в Вашем текущем рабочем каталоге.

В другом случае строки

man < file_name

man не предназначен для чтения чего-либо из STDIN если это называют без аргумента т.е. пустого массива. Так строка

man < file_name

равняется

man

Например, man считает что-то из STDIN также если Вы передаете -l - кому: man. При использовании этой опции, данной на командной строке, можно отобразить содержание чего-либо man чтения от STDIN на Вашем терминале. Так

man -l - < file_name

работал бы также (но был бы осторожен man не просто пейджер, но также и анализирует вход файла и так содержание файла, и отображенное содержание могло отличаться).

Итак, как STDIN, STDOUT и параметры командной строки интерпретируются, все до соответствующего разработчика.

Я надеюсь, что мой ответ мог разрешить вещи.

33
13.04.2017, 15:36
4 ответа

Ctrl+a (значение по умолчанию screen префикс команды), [(входят copy режим) сопровождаемый ?SEARCH_TEXT кажется, работает. Нажмите n для движения в следующее возникновение. Оттуда, можно скопировать слова, строки, регионы, и т.д. для дампа в файлы или вставку позже (с Ctrl+a]).

enter image description here

23
27.01.2020, 19:37
  • 1
    я не могу сделать этого. Таким образом, необходимо нажать 3 клавиши сразу? ctrl, a, [? –  Capaj 17.03.2015, 12:13
  • 2
    shift+ctrl+f –  Ja8zyjits 03.06.2016, 16:25

После команды grails можно использовать grep: grails run-app | grep "user authorities". Однако, вам придется выполнить вашу команду заново.

.
8
27.01.2020, 19:37

Перенаправить вывод вашей команды в vim-editor: grails run-app | vim -

Несколько советов по поиску с использованием Vim:

  • введите / затем введите строку поиска полномочия пользователя
  • тип : установите hlsearch для выделения результатов поиска
  • введите n для поиска вперед или Shift + n для поиска назад
  • помните, что вы сейчас находитесь в редакторе, поэтому, если вы случайно внесли некоторые изменения, вы можете вернуться, просто нажмите ESC один раз, чтобы выйти из режима редактирования, затем нажмите u , чтобы отменить одно редактирование
  • типа : q! для выхода из Vim и отмены результатов поиска
  • вы можете делать все, что хотите :-D http://vim.wikia.com/wiki/Vim_Tips_Wiki
1
27.01.2020, 19:37

Если вы используете Konsole (эмулятор терминала KDE), вы можете использовать Ctrl + Shift + F. Это может работать и в других эмуляторах терминала (Linux).

Редактировать:
@sumit сообщает, что это работает также в Gnome Terminal.
@vdicarlo сообщает, что это также работает в терминале XFCE4.

29
27.01.2020, 19:37

Теги

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