I have a list of files with the following file name format:
[some unknown amount of characters][_d][yyyymmdd][some unknown amount of characters]
I want to extract the substring that contains the date (yyyymmdd) which I know will always be proceeded by "_d". So basically I want to extract the first 8 characters after the "_d".
What is the best way to go about doing this?
I would use
sed:This gets a string and removes everything up to
_d. Then, catches the following 8 characters and prints them back.sed -ris used to be able to catch groups with just()instead of\(\).^.*_d(.{8}).*$^beginning of line.*any number of characters (even 0 of them)_dliteral _d you want to match(.{8})since.matches any character,.{8}matches 8 characters. With()we catch them so that they can be reused later on..*$any number of characters up to the end of the line.\1print back the catched group.