Er. Realised this morning that my proposed solution could do with some work.
I'm taking a guess that the mapping used by /dev/mapper is vgname-lvname,
where any -'s in either vgname or lvname are doubled. For example, on my
system here, /dev/linuxvg/hoary-std becomes /dev/mapper/linuxvg-hoary--std.
If we want to keep that convention for breezy, then the following sed
statement should do the trick:
sed -e 's#/dev/mapper/\(.*\)\([^-]\)-[^-].*#\1\2#'
I've tested it with the following inputs:
/dev/mapper/vgname-lvname
/dev/mapper/vg--name-lvname
/dev/mapper/vg--na--me-lvname
/dev/mapper/vgname-lv--name
/dev/mapper/vgname-lv--na--me
/dev/mapper/vg--name-lv--name
/dev/mapper/vg--na--me-lv--na--me
And i get the following results:
vgname
vg--name
vg--na--me
vgname
vgname
vg--name
vg--na--me
So, i _think_ that should do it. Comments please ,-)
Er. Realised this morning that my proposed solution could do with some work.
I'm taking a guess that the mapping used by /dev/mapper is vgname-lvname, hoary-std becomes /dev/mapper/ linuxvg- hoary-- std.
where any -'s in either vgname or lvname are doubled. For example, on my
system here, /dev/linuxvg/
If we want to keep that convention for breezy, then the following sed
statement should do the trick:
sed -e 's#/dev/ mapper/ \(.*\)\ ([^-]\) -[^-].* #\1\2#'
I've tested it with the following inputs: vgname- lvname vg--name- lvname vg--na- -me-lvname vgname- lv--name vgname- lv--na- -me vg--name- lv--name vg--na- -me-lv- -na--me
/dev/mapper/
/dev/mapper/
/dev/mapper/
/dev/mapper/
/dev/mapper/
/dev/mapper/
/dev/mapper/
And i get the following results:
vgname
vg--name
vg--na--me
vgname
vgname
vg--name
vg--na--me
So, i _think_ that should do it. Comments please ,-)