Sujet : Re: a sed question
De : janis_papanagnou+ng (at) *nospam* hotmail.com (Janis Papanagnou)
Groupes : comp.unix.shellDate : 22. Dec 2024, 02:06:23
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vk7omn$a1rs$1@dont-email.me>
References : 1 2 3 4 5 6 7
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
On 22.12.2024 01:31, Lawrence D'Oliveiro wrote:
On Sun, 22 Dec 2024 00:50:45 +0100, Janis Papanagnou wrote:
In practice it goes even farther; with Awk typical pipeline command
sequences that use utilities like cat, head, tail, grep, cut, sed, tr,
wc, seq, tee, etc. can typically all be represented and combined by Awk.
Another counterexample to the hoary old “do one thing and do it well”
trope ...
I'm not quite sure what you're aiming at with your statement.
My own stance on that is that this "do one thing and do it well”
is okay in principle, but it's also no dogma for me. - It still
holds in many places.
There's some tools, though, that stuff all sorts of functions
into its own feature set that aren't appropriate. (I had a good
example but it evades me at the moment. - Where's my coffee?! -
Anyway, you may have observed your own examples.)
For the given discussion, Awk's "one thing" is text-processing.
OTOH, 'cut', for example, does one [very primitive] thing, but
it _completely_ *fails* to do it well.
The point is that a pipeline is a very restricted way of data
processing and it quickly turns out in non-trivial applications
that you have your data-processing task split into "elementary
operations" that you clumsily have to glue together with shell,
and some things just can't be reasonably done that way.
I still use 'head' or 'tail' (or even 'cat') if I want to get
a quick look onto some data - I certainly don't use Awk for
that. But as soon as many of your "elementary operations" get
combined (which often can be anticipated) using a better tool
might be appropriate (Awk, Perl, Python, whatever one thinks
fits best).
It's good that we have tools like, e.g., 'sort'. And I'm not
very excited about, say, GNU Awk's various sort() functions.
(But they might come in handy in cases.)
In short; it's good to use the appropriate tools, notice if
tools get worse at certain jobs, and change if necessary.
Janis