Discussion:
command from inside gnuplot
(too old to reply)
Jörg Buchholz
2023-11-07 09:24:38 UTC
Permalink
Hi,

i have a problem to use a system command from inside gnuplot.

sed -i 's/^\xef\xbb\xbf//' ./process-2023-11-02-13-04-40.csv

works at the terminal


system "sed -i 's/^\xef\xbb\xbf//' ./process-2023-11-02-13-04-40.csv"
and
system(sprintf("sed -i 's/^\xef\xbb\xbf//'
./process-2023-11-02-13-04-40.csv"))

in a gnuplot script do not work, but gnuplot shows me

GPVAL_SYSTEM_ERRNO = 0
GPVAL_SYSTEM_ERRMSG = "Success"


as a test I try

system "cp ./process-2023-11-02-13-04-40.csv
./process-2023-11-02-13-04-40.test"

this works, the file process-2023-11-02-13-04-40.test was created.


what's wrong?

Jörg
Chris Elvidge
2023-11-07 10:16:27 UTC
Permalink
Post by Jörg Buchholz
Hi,
i have a problem to use a system command from inside gnuplot.
sed -i 's/^\xef\xbb\xbf//' ./process-2023-11-02-13-04-40.csv
works at the terminal
system "sed -i 's/^\xef\xbb\xbf//' ./process-2023-11-02-13-04-40.csv"
and
system(sprintf("sed -i 's/^\xef\xbb\xbf//'
./process-2023-11-02-13-04-40.csv"))
Shouldn't that be just:
system("sed -i 's/^\xef\xbb\xbf//' ./process-2023-11-02-13-04-40.csv")
After all, sprintf isn't a system command and you're not expecting any
output.
Post by Jörg Buchholz
in a gnuplot script do not work, but gnuplot shows me
GPVAL_SYSTEM_ERRNO = 0
GPVAL_SYSTEM_ERRMSG = "Success"
as a test I try
system "cp ./process-2023-11-02-13-04-40.csv
./process-2023-11-02-13-04-40.test"
this works, the file process-2023-11-02-13-04-40.test was created.
what's wrong?
Jörg
--
Chris Elvidge, England
RUDOLPH'S RED NOSE IS NOT ALCOHOL-RELATED
Hans-Bernhard Bröker
2023-11-07 17:52:17 UTC
Permalink
Post by Jörg Buchholz
Hi,
i have a problem to use a system command from inside gnuplot.
sed -i 's/^\xef\xbb\xbf//' ./process-2023-11-02-13-04-40.csv
works at the terminal
system "sed -i 's/^\xef\xbb\xbf//' ./process-2023-11-02-13-04-40.csv"
and
system(sprintf("sed -i 's/^\xef\xbb\xbf//'
./process-2023-11-02-13-04-40.csv"))
Unfortunately this suffers from a lack of escaping. Please note that
"strings in double quotes" go through some pre-processing in gnuplot,
including backslash escape substitution done to them before being used.
So if you want literal backslashes, they have to be escaped. See "help
quote" for the details.

What that means is that

system "sed -i 's/^\\xef\\xbb\\xbf//' ./process-2023-11-02-13-04-40.csv"

should work better.
Jörg Buchholz
2023-11-08 06:27:16 UTC
Permalink
Post by Jörg Buchholz
Hi,
i have a problem to use a system command from inside gnuplot.
sed -i 's/^\xef\xbb\xbf//' ./process-2023-11-02-13-04-40.csv
works at the terminal
system "sed -i 's/^\xef\xbb\xbf//' ./process-2023-11-02-13-04-40.csv"
and
system(sprintf("sed -i 's/^\xef\xbb\xbf//'
./process-2023-11-02-13-04-40.csv"))
Unfortunately this suffers from a lack of escaping.  Please note that
"strings in double quotes" go through some pre-processing in gnuplot,
including backslash escape substitution done to them before being used.
So if you want literal backslashes, they have to be escaped. See "help
quote" for the details.
What that means is that
system "sed -i 's/^\\xef\\xbb\\xbf//' ./process-2023-11-02-13-04-40.csv"
should work better.
That's it. Thanks a lot. I was nearby, but use the wrong slash to
escaped backslashes.

Jörg

Loading...