this post was submitted on 30 Dec 2023
145 points (96.2% liked)

Linux

47345 readers
1379 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Studying and awk came up.

Spent about an hour and I see some useful commands that extend past what "cut" can do. But really when dealing with printf() format statements is anyone using awk scripts for this?

Or is everyone just using their familiar scripting language. I'd reach for Python for the problems being presented as useful for awk.

you are viewing a single comment's thread
view the rest of the comments
[–] Lydia_K@startrek.website 57 points 8 months ago (1 children)

I use awk all the time, nothing too fancy, but when you need to pull out elements of text it's usually way easier than using cut.

awk {' print $3 '} will pull the third element based on your IFS variable (internal field separater, default is whitespace)

awk {' print $NF '} gets you the last element, and awk {' print $(NF-1) '} gets you one element from the last, and so on.

Basic usage but so fast and easy for so many everyday command line things.

[–] FigMcLargeHuge@sh.itjust.works 13 points 8 months ago

You can also add to the output. I use it frequently to pull a list of files, etc, from another file, and then do something like generate another script from that output. This is a weak example, but one I can think of off my head. Not firing up my work laptop to search for better examples until after the holidays. LOL.

awk {'print "ls -l "$1'}

And then send that to a file that I can then execute.