Use [0-9] to match the number
Linux
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.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
Or, alternatively, [[:digit:]]
, and dont' forget to add a quntifier +
to match multiple digits. See documentaion for details.
awk '/^\/dev\/loop[[:digit:]]+/{print}'
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..)
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?