On Dec 5, 2017 7:35 AM, "Devin Teske" <de...@shxd.cx> wrote:


> On Dec 5, 2017, at 5:00 AM, Hans Petter Selasky <h...@selasky.org> wrote:
>
>> On 12/05/17 13:58, Rodney W. Grimes wrote:
>> Further more, why does freebsd need this in base?
>
> Hi,
>
> I think this is useful. It could replace the "-i " (intermediate) option
for "sed" for example. It avoids creating temporary files when filtering
files, right?
>
> --HPS
>

Wth is wrong with:

data=$( sed -e '...' somefile ) &&
        echo "$data" > somefile

or

set -e
data=...
echo "$data" > ...

or

exec 3<<EOF
$( ... )
EOF
cat > ... <&3

or

(I digress)

Infinite variations, but the gist is that sponge looks to be trying to help
sh(1)/similar when help is unneeded.

Why buffer data into memory via fork-exec-pipe to sponge when you can
buffer to native namespace without pipe to sponge?

Am I missing something? Why do we need sponge(1)?
--
Devin

I do believe you are sort of missing the point. It is a utility that is
explicitly useful in shell pipelines, so when you want to do things as
one-liners. I like the utility and use the one from ports and my own
version in various things here and there. It is a common utility installed
in Linux distros and the top answer on Google for questions such as
"redirect shell output to same file". I think the outrage about adding a
tiny utility that's common elsewhere is a bit silly.

As for the implementation, I have my own version of sponge (hobby program
written in rust so not base-worthy), and it uses explicit temporary files
for larger outputs.

Matt
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to