Clipboard Filtering

April 14th, 2024
cli, tech
Here's a pattern I find pretty useful:

pbpaste | some_command | pbcopy

For example:

  • Converting spaces to tabs, for pasting into a spreadsheet program: pbpaste | tr ' ' '\t' | pbcopy

  • Converting tabs and newlines to html table formatting: pbpaste | sed 's/^/<tr><td>/' | sed 's/\t/<td>/g' | pbcopy

  • Escape angle brackets and ampersands for html: pbpaste | sed 's/&/\&amp;/g; s/</\&lt;/g; s/>/\&gt;/g;' | pbcopy (I used this on itself before pasting into this post.)

  • Convert newlines-indicate-paragraphs text to html: pbpaste | sed 's/^/<p>/' | pbcopy (I use this in putting together the kids text posts.)

  • Any time I want to do find-and-replace when working with software that doesn't support it well.

The way this works is that pbpaste reads from the clipboard as plain text, the intermediate command(s) transform the text, and the pbcopy sends it back to the clipboard.

While these are the Mac commands it should be similar elsewhere. For example, on Linux I'd use xsel, though that does require paying attention to whether you want PRIMARY (xsel) or CLIPBOARD (xsel -b).

Comment via: facebook, lesswrong, mastodon, substack

Recent posts on blogs I like:

Thing of Things AI use policy

dynomight recently wrote an article calling for bloggers to state publicly whether and how they use AI

via Thing of Things July 6, 2026

Agentic test processes, LLM benchmarks, and other notes on agentic coding from Galapagos Island

I've been using AI fairly heavily since last November and the whole thing is a funny experience. An agent will do something that, if a human did it, you'd immediately fire them. My reaction, of course, is to act as if this is great and spin up a t…

via Posts on July 3, 2026

Variable fonts aren't universally supported

I make a lot of webpages. I also use Lockdown Mode on iOS and MacOS for a bit of extra security. Sometimes I realize that I forgot to test on Safari and it looks like crap, or I test and don’t notice that there’s been a problem for months (as was the case…

via Home June 27, 2026

more     (via openring)