this post was submitted on 16 Dec 2025
39 points (93.3% liked)

Linux

10668 readers
346 users here now

A community for everything relating to the GNU/Linux operating system (except the memes!)

Also, check out:

Original icon base courtesy of lewing@isc.tamu.edu and The GIMP

founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] vk6flab@lemmy.radio 10 points 3 days ago (1 children)
[–] victorz@lemmy.world 4 points 3 days ago* (last edited 3 days ago) (4 children)

What do y'all use awk for really? 20 of using Linux, I've never had to use awk. And I've done a looot of scripting in my days. Anything from building my own clone of polybar using eww (with loads of scripts underneath), to automated systems for bulk handling of student assignments back at uni when I used to help out with grading and such.

What's awk good for that other standard utilities can't do?

[–] stewie410@programming.dev 3 points 2 days ago (1 children)

I both love and hate awk -- on the one hand, it provides the same/similar functionality of similar tools (sed, grep, cut, etc); but it is a bit of a bear and can be pretty slow.

If you need more "complex" tasks done what would be cumbersome with the rest of the standard tooling, and performance is a non-issue, awk/gawk can probably get it done.

Though, I too am trying to use it as little as possible in scripts. I think multiple subshells/pipes is still better than awk in some cases. Syntax also leaves a lot to be desired...

[–] victorz@lemmy.world 2 points 2 days ago (1 children)

My experience exactly. I'd rather use a specific tool designed for the task than invoke a whole new language. It just feels... icky for some reason.

[–] stewie410@programming.dev 2 points 2 days ago

There are times when dealing with annoying field separators that awk is a more convenient tool -- though, I'm also now at the stage that I want to do as much with bash-builtins as I possibly can.

[–] vk6flab@lemmy.radio 6 points 3 days ago (2 children)

I've been using Linux for 25 years, awk is a more recent addition to my arsenal, but rapidly becoming more and more useful.

For example, awk is extremely helpful if you want to rearrange columns, do math on columns, essentially do things that would take multiple lines of bash with cut and read.

[–] nik9000@programming.dev 3 points 3 days ago

I used to switch to perl or python if I needed awk. These days I don't tend to run into it as much. Not sure if that was a good choice. But it's how I spent the past 25 years.

[–] victorz@lemmy.world 3 points 3 days ago

That makes sense! I think I'd be running Nushell for this if the scripts didn't need to be very portable, sounds like a good use case for that.

[–] TrumpetX@programming.dev 2 points 2 days ago (2 children)

I use awk instead of cut cause I can remember the syntax better.

ps aux | grep zoom | grep -v grep | awk '{print $2}' | xargs kill -9

[–] stewie410@programming.dev 2 points 2 days ago (2 children)

You can get rid of those greps, btw:

ps aux | awk '/zoom/ && $0 !~ /awk/ {print $2}'

Or just use pgrep.

[–] TrumpetX@programming.dev 1 points 2 days ago* (last edited 2 days ago)

grep is everywhere, pgrep is not

[–] victorz@lemmy.world 2 points 2 days ago* (last edited 2 days ago)

The greps were much more legible that this concoction 😅

But I second the use of pgrep. 👌

Better yet, just killall zoom.

[–] victorz@lemmy.world 1 points 2 days ago (1 children)

May I interest you in the command killall? 😁

[–] TrumpetX@programming.dev 1 points 2 days ago (1 children)

The thing with killall is I can't see what it's going to do first. With the greps, I can look first, kill second.

[–] victorz@lemmy.world 1 points 1 day ago

True, then I would personally run pgrep first, then killall. 😊

[–] dontsayaword@piefed.social 4 points 3 days ago* (last edited 3 days ago) (1 children)

I usually use something like awk '{print $2}' to get a bit of some output

Ex: list processes, grep for the line I want, then awk out the chunk I want from that line (the pid):

ps aux | grep myprogram | awk '{print $2}'

[–] hallettj@leminal.space 4 points 3 days ago (1 children)

That's the only think I know how to do with awk, and I reach for it a lot! cut is purpose-built for that function, and is supposedly easier to understand; but it doesn't seem to just work like awk does.

[–] victorz@lemmy.world 2 points 3 days ago (1 children)

I think cut is a little bit finicky because two consecutive occurrences of the cell delimiter counts, and gives an empty cell when selecting the index between them.

choose is a bit better at this from what I remember, which is like the modern cut, I believe, of course written in Rust.

Otherwise Nushell excels at this sort of thing, although I don't really use it.

[–] hallettj@leminal.space 2 points 3 days ago

Oh, I hadn't heard about choose!

I have been using Nushell, and you're right, it is great at parsing input. Commands like detect columns and parse are very nice, and have been supplanting awk for me.