pbcopy & pbpaste: het klembord manipuleren vanaf de opdrachtregel

Kopiëren en Plakken zijn absolute vereisten voor vrijwel alle computergebruikers. Als u regelmatig op de opdrachtregel werkt, wilt u misschien weten hoe u het klembord van Mac OS X rechtstreeks vanaf de terminalprompt manipuleert. Dat is wat de Mac commando's pbcopy en pbpaste voor zijn, en zoals je misschien al geraden hebt, doen de twee commmands precies wat ze klinken, pbcopy is kopiëren en pbpaste is om via de commandoregel te plakken. Ze zijn eigenlijk behoorlijk krachtig en je zult ze zeker nuttig vinden de volgende keer dat je rondhangt met je bash, tcsh, zsh of wat dan ook je favoriete shell prompt is.

We zullen een korte uitleg geven over het gebruik van pbcopy en pbpaste om klembordgegevens te manipuleren, met enkele voorbeelden die aangeven hoe de uitvoer van terminalopdrachten als invoer naar het klembord moet worden omgeleid en natuurlijk hoe de inhoud van het klembord in de command line met pbpaste.

Gebruik van pbcopy & pbpaste van Command Line op Mac

pbcopy : neemt standaardinvoer en plaatst deze in de klembordbuffer

pbcopy is eenvoudig genoeg om te gebruiken, er is eigenlijk iets in te plaatsen en het zal het naar de klembordbuffer kopiëren. Dit kan dan worden benaderd via pbpaste of het standaard Finder's plakcommando (command-v). Hier is hoe het te gebruiken:

$ pbcopy < file.txt

Dat is het, nu staat de inhoud van file.txt op uw klembord, klaar om te plakken waar ooit. Maar pbcopy is veel krachtiger dan dat en u kunt de uitvoer van opdrachten en programma's ook laten kopiëren. Hier is een voorbeeld met het commando 'ps':

$ ps aux | pbcopy

Dit leidt de resultaten van de ps-opdracht naar het klembord, nogmaals kan deze overal worden geplakt. Als je je resultaten een beetje wilt filteren, kun je dat ook doen. Een voorbeeld met de grep-opdracht is:

$ ps aux | grep root | pbcopy

Dit leidt de resultaten van de opdracht 'ps aux' door, maar filtert specifiek voor 'root' en kopieert alleen die resultaten naar het klembord. Gaaf he?

pbpaste : neemt gegevens van de klembordbuffer en schrijft deze naar de standaarduitvoer

pbpaste is even eenvoudig te gebruiken, het haalt alles wat je in de klembordbuffer hebt geplaatst eruit en spuugt het uit. In de meest eenvoudige vorm typ je gewoon:

$ pbpaste

Hierdoor worden alle gegevens afgedrukt die u hebt gekopieerd uit de opdracht pbcopy of de kopieeropdracht van de Finder (opdracht-c). U kunt deze uitvoer eenvoudig via de opdrachtregel naar een bestand routeren om later te openen als u dat wilt, met deze eenvoudige opdracht:

$ pbpaste > pastetest.txt

Het filteren van wat is geplakt is echter erg handig en de commandostructuur lijkt veel op wat we eerder zagen met pbcopy. We filteren voor 'rcp', maar u kunt natuurlijk filteren voor alles wat u maar wilt

$ pbpaste | grep rcp

Wat u ziet geplakt, is alleen wat overeenkomt met uw zoekopdracht voor 'rcp' binnen de gegevens op het klembord.

Er is veel meer gebruik met pbcopy en pbpaste, maar dat zou u een algemeen idee moeten geven van hoe u het kunt gebruiken en misschien kunt u enkele ideeën krijgen om ze in uw eigen productiviteit te implementeren. Het screenshot laat eenvoudig zien dat je vanaf de commandoregel kunt kopiëren en plakken in een Finder-app (in dit geval TextEdit) zonder de opmaak te verliezen.

En ja, je kunt de pbcopy- en pbpaste-commando's op de terminal gebruiken en daarna weer met hen communiceren vanuit de GUI van MacOS door de standaard Mac-kopie en -plakksnelkoppelingen van Command + C en Command + V te gebruiken. Het gaat ook de andere kant op, een kopie van de GUI kan worden geplakt met pbpaste op de opdrachtregel.

Gebruikers die geïnteresseerd zijn in het leren van krachtigere toepassingen van pbcopy en pbpaste om het plakbord van Mac OS X via de opdrachtregel te wijzigen, worden aangemoedigd om de commando's man pages te herzien, die in principe uitwisselbaar zijn en beide zijden van het commando bestrijken. Toegang verkrijgen kan eenvoudig met behulp van 'man pbcopy' of 'man pbpaste', waar je wat meer details over het gebruik van de commando's zult zien, evenals andere opties voor het gebruik van de commando's, het aanpassen van de codering, het stripen of onderhouden van rich-text details, en zo veel meer.