web-dev-qa-db-ja.com

マウスを使用せずにターミナルI / Oをカットアンドペーストするにはどうすればよいですか?

ターミナルのコマンド出力からテキストを検索して切り取り、後続のコマンドライン呼び出しで使用したり、エディターセッションで使用したりできます。

端末の出力に対して正規表現を簡単に実行し、マウスに触れずに結果をカットする方法はありますか?

私の要件は次のとおりです。

  • sshを介してリモートマシンで作業しているときに機能するはずです。それらのマシンでは追加のソフトウェアをインストールできないため、ソリューションはローカルでなければなりません。
  • 可能であれば、「常に存在する」必要があります。たとえば、長いプロセスを実行しているときに突然失敗した場合、準備された環境でプロセスを再度開始することなく、出力をgrepできるようにしたいと思います。
5
tonicebrian

screen(1) では、キーボードを使用してコピー/貼り付けできますが、screen内でシェル/プロセスを実行する必要があります。

コピーするには、ヒット Ctrl+A[、カーソルを(矢印キーを使用して)開始点に移動し、ヒットします  (戻る)、カーソルを終点に移動してヒット 。マークされたテキストがコピーされます。

貼り付けるには、ヒット Ctrl+A]

Byobuは画面の単なるラッパーであるため、このソリューションはByobuにも適用されます。

4
geirha

xclipおよびgrepおよびパイプ!

  • xclipユーティリティ(Sudo apt-get install xclip

    • デフォルトでは、xclipは、パイプ入力をクリップボードにコピーするように設定されます
    • xclip -oは、クリップボードの内容を端末に「貼り付け」ます(つまり、標準出力)
  • 正規表現の場合、コマンドをgrepにパイプするだけです。 -Pスイッチは完全なPerl正規表現機能を提供します。

  • 例:ls -lR | grep -P "anc.*" | xclipクリップボードにコピーする

    • 使用する tee xclip代わりに表示され、コピーされます。
5
ish