Help with sed commands
Help with sed commands
Hi all! I have always only used sed with s///
, becouse I've never been able to figure out how to properly make use of its full capabilities. Right now, I'm trying to filter the output of df -h --output=avail,source
to only get the available space from /dev/dm-2 (let's ignore that I just realized df accepts a device as parameter, which clearly solves my problem).
This is the command I'm using, which works:
bash
df -h --output=avail,source \ | grep /dev/dm-2 \ | sed -E 's/^[[:blank:]]*([0-9]+(G|M|K)).*$/\1/
However, it makes use of grep, and I'd like to get rid of it. So I've tried with a combiantion of t
, T
, //d
and some other stuff, but onestly the output I get makes no sense to me, and I can't figure out what I should do instead.
In short, my question is: given the following output
bash
$ df -h --output=avail,source Avail Filesystem 87G /dev/dm-2 1.6G tmpfs 61K efivarfs 10M dev ...
How do I only get 87G
using only sed
as a filter?
EDIT:
Nevermind, I've figured it out...
bash
$ df -h --output=avail,source \ | sed -E 's/^[[:blank:]]*([0-9]+(G|M|K))[[:blank:]]+(\/dev\/dm-2).*$/\1/; t; /.*/d' 85G