

using our index, we select the appropriate file from our list set this_file to item indexof all_files Repeatwithindexfrom1to the countof all_files
/article-new/2019/01/how-to-batch-rename-files-mac-5.jpg)
the ’index’ number is of course required for the sequential renaming of our files! ’index’ is our counter that we initially set to 1 and then count up with every file. now we start looping through all selected files. Ruby ( Live demo) str.gsub(/^.Settext item delimiters to "." tell application "Finder" set all_files to every item of (choosefilewithprompt "Choose the Files you’d like to rename:" with multiple selections allowed ) aslistĭisplay dialog "New file name:" default answer "" set new_name totext returned ofresult

You could try to match both patterns starting with pattern with more digits at beginning, then use one replacement string that includes back-references to all capturing groups in order. This way both capturing groups exist at the same time, first capturing group always refers to 2 digits and second one to 1 digit and we don't need to deal with 4 different capturing groups. (?*? Match every thing (un-greedily) up to. Using Perl Regular Expressions there is a workaround for this using a branch reset construct (?|(.)|(.)|.) and a positive lookbehind: ^.*?(?|(\d\d)Q(\d)|Q(\d\d)(?<=(\d).)) Following Perl it expects back-references to refer to a captured group otherwise that warning is displayed. Rename uses Perl syntax for Regular Expressions. '2Q13 ABC MF PM Example_fIS.pdf' would be renamed to '2014Q23_0 ABC MF PM Example_fIS.pdf' '05Q1 ABC_IS.pdf' would be renamed to '2014Q23_0 ABC_IS.pdf' However, my rename script (using brew install rename) in the terminal provides the wrong results. My ruby code works fine: Dir.glob("*.pdf").each do |orig_name| This question helps with a single pattern, but not 2 patterns. However, I have another pattern "05Q1" which means the 1st quarter of 2005, so I would need to add 2005Q1.įiles renamed: 2017Q3_ABC-EDFGH-JLG-Sample-3Q17-fIS.pdf I need to add 2017Q3 in front of the file name. In the first file, pattern "3Q17" for example is a date that means the 3rd quarter of year 2017. Using OSX Terminal or ruby, what would be the best method to do this? It is a little more complicated because it is pattern 1 or pattern 2. I would like to match the \d\dQ\d pattern or \dQ\d\d pattern and reformat it in front of the file name.
