Filtrer le contenu du presse-papiers sans utiliser de fichier intermédiaire


11

J'essaie de modifier le texte qui se trouve dans mon presse-papiers, de supprimer certaines lignes de celui qui contient des chaînes, puis d'obtenir la sortie pour une manipulation ultérieure (je préfère copier dans mon presse-papiers uniquement si j'en ai besoin). Je pensais à quelque chose comme ça:

cat > swapfile
##Paste all
grep -v string swapfile
## Read all
rm swapfile

J'essaie d'empêcher la création de fichiers et de tout faire dans le shell stdin / out lui-même. J'ai essayé d'utiliser des tuyaux, des redirections, grep / sed à partir de l'entrée, mais aucun n'a entraîné l'impression de l'entrée sans le motif indésirable.

Réponses:


13
xsel -o -p  | grep -v string

Ce qui précède utilise l'utilitaire xsel pour capturer à partir du presse-papiers et envoyer la sélection principale actuelle à stdout. Vous pouvez ensuite modifier la sortie avec grep (ou sed ou awk) à votre guise.

Si vous ne voulez pas la sélection principale, remplacez "-p" par "-s" pour la sélection secondaire ou "-c" pour la sélection du presse-papiers.

Sur une distribution Debian ou similaire, vous pouvez obtenir xsel avec apt-get install xsel.

Ce qui précède envoie sa sortie à stdout. Si vous souhaitez capturer la sortie directement dans la sélection, utilisez:

xsel -o -p  | grep -v string | xsel -i -s

L'option "-i" indique à xsel d'obtenir l'entrée de stdin et de l'enregistrer dans la sélection. "-s" spécifie à nouveau la sélection secondaire.


J'utilise celui-ci tout le temps. Cela devrait bien fonctionner, assurez-vous simplement que votre copie n'est pas "trop ​​grande" ou vous pourriez obtenir une sortie inattendue. Cela devrait être bien pour tout ce que vous copiez et collez normalement.
coteyr

pas une application native pour macos
lobi
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.