web-dev-qa-db-fra.com

Comment couper et coller des E / S de terminal sans utiliser la souris?

Je souhaite rechercher et couper du texte à partir de la sortie d'une commande dans un terminal afin de pouvoir l'utiliser dans des appels ultérieurs en ligne de commande ou tout simplement dans une session d'édition.

Est-il possible d'exécuter facilement une expression régulière contre la sortie d'un terminal et de couper les résultats sans toucher la souris?

Mes exigences sont:

  • cela devrait fonctionner en travaillant avec des machines distantes via ssh. Sur ces machines, je ne peux pas installer de logiciel supplémentaire, la solution doit donc être locale.
  • si possible, il doit être "toujours présent". Par exemple, si j'exécute un long processus et que tout échoue, j'aimerais pouvoir grapper la sortie sans avoir à redémarrer le processus avec un environnement préparé.
5
tonicebrian

screen (1) vous permet de copier/coller à l'aide du clavier, mais vous devez exécuter votre processus/processus Shell à l'intérieur de screen.

Pour copier, appuyez sur Ctrl+A[, déplacez le curseur (à l'aide des touches fléchées) vers le point de départ et appuyez sur  (RETOUR), déplacez le curseur jusqu'au point final et appuyez sur . Le texte marqué est maintenant copié.

Pour coller, appuyez sur Ctrl+A]

Cette solution s’applique également à Byobu, car Byobu n’est qu’un écran enveloppant.

4
geirha

xclip et grep et les tuyaux!

  • Installez l'utilitaire xclip (Sudo apt-get install xclip)

    • Par défaut, xclip est configuré pour copier les entrées redirigées vers le presse-papiers.
    • xclip -o "collera" le contenu du presse-papiers dans votre terminal (sortie standard)
  • Pour les expressions régulières, il suffit de diriger la commande vers grep; le commutateur -P vous donnera toutes les fonctionnalités de regex Perl.

  • Exemple: ls -lR | grep -P "anc.*" | xclip pour copier dans le presse-papier

    • Utilisez tee xclip à la place pour qu'il soit affiché ET copié.
5
ish