Things I Learned #22: How to Count Words in Powershell
As I’ve mentioned in previous TIL’s, I’m not a power user of Powershell. I use it when I need to and can generally figure things out. Sometime in 2015, I started working on what I had hoped would be the book version of my old “Going Independent” conference workshop. I still had the knowledge, it just wasn’t appropriate to go around telling people, “hey, you should go indie!” while I was working for The Man, so I figured put it out as a book and call it good.
I wrote bits and pieces of several chapters, and after a long writing session, I was always interested how much I had written. I wrote (and still do) everything in Markdown either in Vim or in VSCode, but at the time, there wasn’t a good way on Windows to get the word count without pasting it into Word and using its tools. On my Mac or Linux, it was easy.
The output shows lines, words, and characters. If you provide a wildcard for the filename, it will list all files with the lines, words, and characters and total them at the end of the output. If I just wanted to see words, I could use the -w argument, lines would be the -l argument, and of course, -c would give you the character count by itself.
TIL
Unfortunately, I did a fair amount of writing on my Windows machine where wc wasn’t an option, so I needed to come up with a Powershell solution. While not nearly as elegant as just calling a single command, I figured out how to combine the necessary cmdlets to get me the output I was looking for.
The script I created only used the -word parameter, but for this post, I wanted to show how you could get some other information with the same command.
It may not be 100% accurate (either method), but it’s close enough for me.
I ended up writing two scripts: wordcount.ps1 that wrapped all that up into a simple command, and wordcount.sh just so I could run the same thing on both platforms.
Bonus Tip
I have since found a great extension for VSCode named, of all things, Word Count. It adds an entry to the status bar so I can easily see how much I’ve written. Granted, it only shows word count, but that’s almost always what I care about.
I hope you enjoyed this tip!
Comments