Manipulando a clipboard no seu script shell ou no Terminal

Que tal manipular o conteúdo da clipboard (ou das pasteboards, como é seu nome oficial) diretamente no Terminal ou nos seus scripts shell? Pode ser uma grande maneira de implementar gambiarras artifícios técnicos enquanto você faz a transição para formas mais automatizadas de comunicar dados entre seus scripts e os aplicativos do Mac ;-)

Para não deixar o site parado durante uma semana especialmente ocupada por aqui, nada melhor do que uma dica rápida, ainda que ela só vá ter apelo a um público bem específico!

Aliás, antes de prosseguir, uma dica extra: embora o número de posts por semana aqui no BR-Mac seja limitado, o movimento no @brmacblog do Twitter é bem maior, com dicas, diálogo e comentários sobre as notícias  de cada dia – se você ainda não segue, deveria!

pbcopy e pbpaste

Para uma dica tão versátil e prática, não há porque tentar esticar o assunto: o comando pbcopy transfere para a pasteboard o que você transmitir a ele pela entrada padrão. Ou seja: se você digitar no Terminal o comando

ls –la | pbcopy

perceberá que a lista dos arquivos do diretório corrente (resultado do “ls –la”) foi transferida para a pasteboard (pelo | pbcopy) e estará pronta para ser colada (pressionando ⌘+v) no seu editor de texto ou onde você quiser.

Já o comando pbpaste faz a operação inversa: manda para a sua saída padrão (o terminal, um arquivo, uma pipe ou o que você definir) o conteúdo que estiver na pasteboard. Ou seja: se você copiar (pressionando ⌘+c) várias linhas de texto no seu editor favorito e em seguida digitar no seu Terminal (por exemplo):

pbpaste | wc –c

saberá quantos caracteres estavam presentes no trecho copiado, ou se digitar pbpaste > exemplo.txt criará um arquivo chamado exemplo.txt com o conteúdo da pasteboard.

Mas o pbpaste tem um detalhe especial: ele só opera quando o conteúdo da pasteboard é textual (texto puro, EPS ou Rich Text). Se você copiar uma imagem para a pasteboard, o pbpaste não produzirá nenhuma saída.

O funcionamento básico é este, e já é suficiente para muitas gambiarras implementações alternativas de comunicação entre aplicações. Mas há alguns detalhes a mais que você encontra digitando man pbcopy

Espero que, ao ver funcionando sua gambiarra programação alternativa, o interesse na funcionalidade faça você logo se motivar para dar um passo a mais e conseguir fazer a comunicação entre aplicativos sem precisar de um humano no meio do caminho apertando ⌘+v ;-)

Comentar

Comentários arquivados

Mais acessados:

Artigos recentes: