2 ms·
>awk really shoots itself so much with its lack of features that it so desperately needs! That's why I use Perl instead (besides some short one liners in awk,
by jcynix 1y ago
>awk really shoots itself so much with its lack of features that it so desperately needs!
That's why I use Perl instead (besides some short one liners in awk, which in some cases are even shorter than the Perl version) and do my JSON parsing in Perl.
This
diff -rs a/ b/ | ask '/identical/ {print $4}' | xargs rm
is one of my often used awk one liners. Unless some filenames contain e.g. whitespace, then it's Perl again
- ptspts 1y agoThis is much safer: xargs -d '\n' rm -f --
- jcynix 1y agoSure, but my example was just that and I actually use /identical$/ as the pattern. Sorry for the typo. And I use this "historic" one liner only when I know about the contents of both directories. As soon as I need a "safer" solution I use a Perl script and pattern matching, as I said.
- poke646 1y agoIn this case the Perl one-liner would be conceptually identical, the same length, but more performant (no calling out to rm): diff -rs a/ b/ | perl -ane '/identical$/ && unlink $F[3]'
- jcynix 1y agoJust tried to use "-d" and learned that it's a GNUism which isn't available under MacOS, so it's not a portable solution. And neither was it available under BSD 4.3 when I learned about xargs the first time.
- 8n4vidtmkvmk 1y agoI've been using perl instead of sed because PCRE is just better and it's the same regex that PHP uses which I've been coding in for nearly 20 years. I still don't actually know perl, but apparently Gemini does. It wrote a particularly crazy find and replace for me. Never got around to using or learning awk. Only time I see it come up is when you want to parse some tab delimited output