#!/bin/bash
# Look at what has been 'save'd by gnuplot, and write out only differencies.
# Author: Petr Mikulik
# History:
# 1999 gpsavediff.cmd: REXX version
# 2003 gpsavediff.sh: bash version
# License: public domain
Usage ()
{
echo "Script to strip default values from a given gnuplot input file; usually"
echo "used to a file created by gnuplot's \"save\" command."
echo "Usage:"
echo " gpsavediff [gnuplot_save_file]"
echo "If no file given, then take standard input."
echo "Result is printed on standard output."
echo "Example 1: ~/work\$ gpsavediff sinc.gp >new_sinc.gp"
echo "Example 2: gnuplot> save \"|gpsavediff >sinc.gp\""
exit
}
# Require none or one argument.
if [ ! -z "$2" ] ; then
Usage
fi
if [ "$1" == "--help" -o "$1" == "-?" ] ; then
Usage
fi
# Note -- these two command chains are equivalent:
# sed "/^[^>]/d;s/^> //;/^# /d"
# grep ">" | sed "s/^> //" | grep -v "# " |
# One input file given an input.
if [ ! -z "$1" ] ; then
if [ ! -f "$1" ] ; then
echo "Input file \"$1\" does not exist."
exit
fi
echo "reset; save \"-\"" | gnuplot | \
diff -w - $1 | sed "/^[^>]/d;s/^> //;/^# /d"
# diff -w - $1 | grep ">" | sed "s/^> //" | grep -v "# " |
exit
fi
# Data come from standard input, thus must use a temporary file for gnuplot
# default values.
if [ -z "$1" ] ; then
TMP="/tmp/$USER_save_tmp.gp"
echo "reset; save \"-\"" | gnuplot >"$TMP"
diff -w "$TMP" - | sed "/^[^>]/d;s/^> //;/^# /d"
# diff -w "$TMP" - | grep ">" | grep -v "# " | sed "s/^> //"
rm -f "$TMP"
exit
fi
Usage()
# eof gpsavediff