0

I need to remove the part

man1/bmtoa.1.gz

from the full path

/usr/share/man/man1/bmtoa.1.gz

so that it results in

/usr/share/man/

I've tried ${path#[!/]*/*} and ${path#/*/*} but both result in wrong paths.

Trollhorn
  • 203
  • 3
  • 9
  • If you have received an acceptable answer, then please consider accepting it by clicking on the outline of a checkmark to the left of the answer. This will aid future users who have the same question. – Kevin M Apr 26 '10 at 18:26

2 Answers2

1

this will work ${path%/*/*}, but works from the back to the front. here is a good how-to for chopping strings in bash.

Christian
  • 4,645
  • 2
  • 23
  • 27
1

If you could deal with /usr/share/man/man1, then you could do dirname /usr/share/man/man1/bmtoa.1.gz, but since you stated that you need the man1 to also come off, so you'll have to daisy-chain them:

dirname `dirname /usr/share/man1/bmtoa.1.gz`
Kevin M
  • 2,302
  • 1
  • 16
  • 21