Home > Blockchain >  Regex for moving based on last 4 digit combinations in a file
Regex for moving based on last 4 digit combinations in a file

Time:03-05

I have files which are labelled in the following manner, and need to move them according to 0000 - 0010 (base the last 4 digits. What is the regex for this? I have tried this regex but I don't get anything. As someone who isn't an expert on regex any help would be appreciated.

find ./ -regextype egrep -regex '.*file([0-9]\ -[0-9]\ -[0-9])\ .flac'

I get no output from my regex, but would like to copy only 0000 to 0010 to a new location

1241-137614-0000.flac
1241-137614-0001.flac
1241-137614-0002.flac
1241-137614-0003.flac
1241-137614-0004.flac
1241-137614-0005.flac
1241-137614-0006.flac
1241-137614-0007.flac
1241-137614-0008.flac
1241-137614-0009.flac
1241-137614-0010.flac

CodePudding user response:

I suggest with bash version >= 4.0:

mv 1241-137614-{0000..0010}.flac <destionation_dir>

If a source file does not exist, you will get an error message from mv.

CodePudding user response:

For moving files I agree with @Cyrus. If you still need the regex for scripting purposes, this works:

echo "1241-137614-0001.flac" | grep -E -o ".{0,4}.flac" | tr -d '.flac'

although there may be a better way to remove the extension.

  • Related