On Fri, Jun 20, 2025 at 08:32:16AM +0200, Bernhard Voelker wrote:
> On 6/19/25 18:55, Marc Chantreux wrote:
> > so out of curriosity: is there another possible usage ?
> 
> Maybe the 'sed -i ... FILE' case?

sorry for my poor english. what I was saying is "I don't know any
other way of using sponge than make sure every rhs of the pipe
is closed before releasing data to the remain components.

sed -i obvioulsy doesn't work with pipes.

> Support in a general way could look like:
> 
>   sponge-tool FILE cmd args...
> 
> where 'sponge-tool' passes the content of FILE to stdin of 'cmd',
> and writes the stdout back to FILE.

well.

* sponge is more generic
* as long as you have sponge, you can write stuff like that

        inline() {
                local SELF="$1"; shift
                "$@" "$SELF" | sponge "$SELF"
        }

I did it long time ago before I realized I didn't use it
because it's so easy to write

        set A B C D
        for it; do grep foo $it | sponge $it; done

even shorter with shells with non-algol control statements
(zsh, rc, es, …)

        set A B C D
        for it { grep foo $it | sponge $it }

        for it (A B C D) { grep foo $it | sponge $it }

Regards

-- 
Marc Chantreux
Pôle CESAR (Calcul et services avancés à la recherche)
Université de Strasbourg
14 rue René Descartes,
BP 80010, 67084 STRASBOURG CEDEX
03.68.85.60.79


Reply via email to