Regex syntax and features vary between implementations. \d
isn't supported by BRE/ERE flavors.
GNU grep
supports PCRE, so you can use grep -oP '/dev/loop\d'
or grep -o '/dev/loop[0-9]'
if you are matching only one digit character.
Regex syntax and features vary between implementations. \d
isn't supported by BRE/ERE flavors.
GNU grep
supports PCRE, so you can use grep -oP '/dev/loop\d'
or grep -o '/dev/loop[0-9]'
if you are matching only one digit character.
I wish there was one single unifying regex standard.
(obligatory xkcd in 3..2..)
Use [0-9] to match the number
Or, alternatively, [[:digit:]]
, and dont' forget to add a quntifier +
to match multiple digits. See documentaion for details.
awk '/^\/dev\/loop[[:digit:]]+/{print}'
Not sure if I'm understanding, but can't you just pipe the whole thing to awk
and capture the first field? Like
echo "/dev/loop0: [2081]:64 (/a/path/to/afile.dat)" | awk -F: '{print $1}'
Which would print
/dev/loop0
That would also print the colon
Edit: missed the separator token. Sorry guys
No, because we're telling to use :
as a separator with the -F flag
The field separator is declared to be the colon, with -F:, so the fields end and start at colons.
Why would it print the colon?
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0