~2 min read|
“Grepping” a stream of data is a powerful way to cut through the noise (I’ve written previously about its role in digging through git logs for example). Unfortunately, it’s rather sensitive. It’s sensitive to case - at least by default. I ran into this problem recently looking through my
launchctl list to see where Postgres was running (it seemed I had multiple instances based on behavior). The odd part was that when I looked, I saw nothing:
$ launchctl list | grep postgres $
Sadness. But the facts didn’t add up, so I gave up on grep for a moment and inspected the list the old fashioned way - manually and line-by-line.
$ launchctl list PID Status Label 901 0 com.apple.trustd.agent - 0 com.apple.MailServiceAgent - 0 com.apple.mdworker.mail 26910 -9 com.apple.FileProvider ... 58969 0 homebrew.mxcl.PostgreSQL ...
Pay dirt! There it was in all its glory. Process 58969. So why hadn’t it shown up? It was
That’s solvable! I just needed to tell grep to ignore the case, for which it has a
--ignore-case flag or
-i for short. Trying the search again, armed with this information:
$ launchctl list | grep -i postgres 58969 0 homebrew.mxcl.PostgreSQL
Et voilá! Now I can get on with my day.
Hi there and thanks for reading! My name's Stephen. I live in Chicago with my wife, Kate, and dog, Finn. Want more? See about and get in touch!