Как вырезать и вставить терминальный ввод-вывод без использования мыши?

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

Есть ли способ легко запустить регулярное выражение для вывода терминала и результатов обрезки, не касаясь мыши?

Мои требования:

  • it должен работать при работе с удаленными машинами через ssh. На эти машины я не могу установить дополнительное программное обеспечение, поэтому решение должно быть локальным.
  • если возможно, оно должно быть «всегда присутствующим». Например, если я запускаю длинный процесс и вдруг он не работает, я хотел бы иметь возможность просматривать результаты без необходимости повторного запуска процесса с подготовленной средой.
5
задан 27 June 2012 в 11:32

2 ответа

Экран (1) позволяет копировать / вставлять с помощью клавиатуры, но для этого требуется, чтобы вы запускали оболочку / процесс внутри screen.

Чтобы скопировать, нажмите Ctrl + A [, переместите курсор (используя клавиши со стрелками) в начальную точку и нажмите (ВОЗВРАТ), переместите курсор в конечную точку и нажмите . Помеченный текст теперь скопирован.

Чтобы вставить, нажмите Ctrl + A ]

Это решение также применимо к Byobu, поскольку Byobu это просто обертка вокруг экрана.

0
ответ дан 27 June 2012 в 11:32

xclip и grep и трубы!

  • Установите утилиту xclip (sudo apt-get install xclip)

    • По умолчанию xclip настроено на копирование вводимого по конвейеру ввода в буфер обмена
    • xclip -o будет «вставлять» содержимое буфера обмена в ваш терминал (т. Е. Стандартный вывод)
  • Для регулярных выражений просто передайте команду grep; переключатель -P предоставит вам полную функциональность регулярного выражения Perl.

  • Пример: ls -lR | grep -P "anc.*" | xclip для копирования в буфер обмена

    • Вместо этого используйте tee xclip, чтобы оно отображалось И копировалось.
0
ответ дан 27 June 2012 в 11:32

Другие вопросы по тегам:

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