.sh check for sufix g or m on size field

Anonymous swell.k at gmail.com
Mon Jul 12 15:35:38 UTC 2010

Aiza <aiza21 at comclark.com> writes:

> Have a .sh script that accepts an -s sparse file size.
> Only 2 suffix's are valid m and g.
> Been trying to get this line of code to strip out just the single
> letter. But it strips the letter and every thing to the right of it.
> Timagesize=`echo-n "${imagesize}" | sed 's/g.*$//'`

You didn't state what's your input. I guess smth like following will do

  strip() {
      local size=
      if printf >&- 2>&- %g ${size:=${1%[gm]}}; then
          echo "it's a \`$size' without suffix"
          echo "$1 has invalid suffix"

  $ strip 17m
  it's a `17' without suffix
  $ strip 33g
  it's a `33' without suffix
  $ strip 25gm
  25gm has invalid suffix

> I plan to strip just the m or g if its there and the result should be
> numeric. If not numeric know invalid suffix.
> Need help with the sed syntax. Or if there is better way I want to
> learn it.

More information about the freebsd-questions mailing list