grep --count 'pattern' ./sample_file
grep --only-matching 'pattern' ./sample_file | wc -l
umount | sed -n -e '/\/dev\/da0/s/\/dev\/da0.*$/umount \/dev\/da0../p'
It looks like sed() would be better suited than grep() to do what I want, except I can't quite figure the correct script...
I want to be able to umount numerous mounts, eg starting with /dev/da0*
This is close, but not quite:
umount | sed -n -e '/\/dev\/da0/s/\/dev\/da0.*$/umount \/dev\/da0../p'
It returns umount /dev/da0.. instead of umount /dev/da0s1
What am I missing?
for i in $(cmd); do
loop.% ls /dev | grep -s ^ada0
ada0
ada0p1
ada0p2
% ls /dev | grep -s ^ada0p
ada0p1
ada0p2
% for i in $(ls /dev | grep -s ^ada0p); do
umount /dev/$i
done
mount | sed -n -e '/\/dev\/da0/s/ .*$//p'
/dev/da0s2
/dev/da0s1
mount | sed -n -e '/\/dev\/da0/s/ .*$//p' -n -e 's/^/umount /p'
umount /dev/ada0s4a on / (ufs, NFS exported, local, soft-updates, journaled soft-updates)
umount devfs on /dev (devfs)
umount 192.168.1.5:/ on /net (nfs, noatime)
/dev/da0s2
umount /dev/da0s2
/dev/da0s1
umount /dev/da0s1
eval $(mount | sed -n -e 's;^\(/dev/da0[^ ]*\) on .*;umount \1;p')
or
mount | sed -n -e 's;^\(/dev/da0[^ ]*\) on .*;umount \1;p' | /bin/sh
umount /dev/da0p* 2>&- # The 2>&- closes Standard Error (so there are no diagnostic messages).
$?
variable) though if any file system could not be unmounted (e. g. because it wasn’t mounted in the first place).mount -p | cut -f 1 | grep '^/dev/da0p' | xargs umount
mount | sed -n -e 's;^\(/dev/da0[^ ]*\) on .*;umount \1;p' | /bin/sh[/code]