I am trying to extract numbers from file names that follow a specific pattern:
file-8923489_something.txt
another_file-8923489_something.txt
some-other_file-8923
Using pre BASH regex:
x="some-other_file-8923489_something.txt"
[[ "$x" =~ file-([0-9]*)_something ]] && echo ${BASH_REMATCH[1]}
8923489
OR this grep -P
will also work:
grep -oP "file-\K\d+(?=_something)" file
8923489
8923489
8923489
OR using awk:
awk -F 'file-|_something' '{print $2}' file
8923489
8923489
8923489