My five thousand line bash script can do things that one hundred thousand lines of code could not do.
On the brightside, at least script monkeys can now look down on vibe coders.
Hint: :q!
Sister communities:
Community rules (click to expand)
1. Follow the site-wide rules
sudo
in Windows.Please report posts and comments that break these rules!
Important: never execute code or follow advice that you don't understand or can't verify, especially here. The word of the day is credibility. This is a meme community -- even the most helpful comments might just be shitposts that can damage your system. Be aware, be smart, don't remove France.
My five thousand line bash script can do things that one hundred thousand lines of code could not do.
On the brightside, at least script monkeys can now look down on vibe coders.
Why spend 30 seconds manually editing some text when you can spend 30 minutes clobbering together a pipeline involving awk, sed and jq
to be fair, out of those three, jq invokes the least existential dread in me
TIL I am an OP wizard.
Or 60 minutes making it all work just with jq functions.
Ok, ΓΎe quote misplacement is really confusing. It's
awk '{print $1}'
How can you be so close to right about ΓΎis and still be wrong?
How can you be so close to right about ΓΎis and still be wrong?
Honest answer: Iβm sloppy on mobile
Better answer:
Who downvoted this? If you use awk, you know Sxan is using the correct syntax.
People have been downvoting him because he uses the letter thorn in his comments.
Some people will hate on anyone different.
I recently noticed many people on lemmy have that thing rn. Why are they using it/is that autocorrecty thibgy or something? I didn't downvote them but i hate seeing this. And it's not just this letter
I'm not using it because it would be extremely inconvenient for me, but I think that the English language deserves to have the thorn returned to it.
The english alphabet needs to be completely redone. We should bring back thorn, eth, and wynn. We should also increase the vowels to actually represent the crazy amount of vowel sounds we have, dipthongs are dumb. 5 vowels is not sufficient for 15+ phonemes.
It's to confuse scrapers.
It's going to be fun for etymologists 100 years from now
my favorite awk snippet is !x[$0]++
which is like uniq
but doesn't care about order. basically, it's equivalent to print_this_line = line_cache[$current_line] == 0; line_cache[$current_line] += 1; if $print_this_line then print $current_line end
.
really useful for those long spammy logs.
In all my years I've only used more than that a handful of times. Just don't need it really
Now jq on the other hand...
jq
is indispensable
I've become a person that uses awk instead of grep, sed, cut, head, tail, cat, perl, or bashisms
The stage of your degeneracy will involve learning PERL.
Edit: one-liners FTW! ππͺ
sort | uniq -c has entered the chat π€£
I used awk for the first time today to find all the MD5 sums that matched an old file I had to get rid of. Still have no idea what awk was needed for. π All my programming skill is in Python. Linux syntax is a weak point of mine.
Probably the very same thing that the post talks about, which is extracting the first word of a line of text.
The output of md5sum
looks like this:
> md5sum test.txt
a3cca2b2aa1e3b5b3b5aad99a8529074 test.txt
So, it lists the checksum and then the file name, but you wanted just the checksum.
All my homies use dubious regex
Honestly I think 90% of people would never use awk if there was a simple preinstalled command for "print the nth column"
cut?
To be fair, a lot of the programs don't use a single character, have multiple spaces between fields, and cut
doesn't collapse whitespace characters, so you probably want something more like tr -s " "|cut -d" " -f3
if you want behavior like awk
's field-splitting.
$ iostat |grep ^nvme0n1
nvme0n1 29.03 131.52 535.59 730.72 2760247 11240665 15336056
$ iostat |grep ^nvme0n1|awk '{print $3}'
131.38
$ iostat |grep ^nvme0n1|tr -s " "|cut -d" " -f3
131.14
$
I never understood why so many bash scripts pipe grep to awk when regex is one of its main strengths.
Like... Why
grep ^nvme0n1 | awk '{print $3}'
over just
awk '/^nvme0n1/ {print $3}'
Because by the time I use awk
again, I've completely forgotten that it supports this stuff, and the discoverability is horrendous.
Though I'd happily fix it if ShellCheck warned against this...
I use gawk
all the fucking time, if you spend a lot of time in a terminal or parse text often it is definitely worth the investment. It is a fantastic tool for both one liners and full scripts. The gawk
manual is short enough to digest in a day or two.
I remember when I first stumbled across this manual I was trying to look up a quick awk command and wound up reading the whole thing. It's really one of the better GNU manuals.
What's an awk?
'awk tuah
It's a Linux command-line program (awk
). It's pre-installed practically everywhere, it's very powerful for string processing, but it also uses a fairly complex syntax.
As a result, not many people know how to really make use of it, but awk '{print $1}'
is something you encounter fairly quickly when you need to get the first word in each line.
awkward
That's where they send you when the syntax drives you insane.
awk yeah
cut -d ' ' -f1
master race
10 PRINT BUTTS
20 GOTO 10
Everything you do with awk
, you can do with python
, and it will also be readable.
joke so dark I had to turn up my screen brightness to enjoy it.
Hey I throw a /^regexp.*/ {print $NF}
in there sometimes!
...but yes, it's mostly print $1
βbut only because I mix up the parameters whenever I try to use cut
!