I have files whose names I want to change.
Example:
HawaiiFive02010SXXEXXW.ac3
Nashville2012SXXEXXW.ac3
HowToGetAwayWithMurderSXXEXXW.ac3
BetterCallSaulSXXEXXW.ac3
BeautyAndTheBeast2012SXXEXXW.ac3
I need to convert them:
Nashville.2012.SXXEXX.W.ac3
How.To.Get.Away.With.Murder.SXXEXX.W.ac3
Better.Call.Saul.SXXEXX.W.ac3
Beauty.And.The.Beast.2012.SXXEXX.W.ac3
Hawaii.Five.0.2010.SXXEXX.W.ac3
I found this :
echo Nashville2012SXXEXXW.ac3 | sed 's/[A-Z]/.&/g;s/^.//'
Nashville2012.SXX.EXX.W.ac3
echo HowToGetAwayWithMurderSXXEXXW.ac3 | sed 's/[A-Z]/.&/g;s/^.//'
How.To.Get.Away.With.Murder.SXX.EXX.W.ac3
If it is not possible to change the file names I would call them myself. I just want to know if this would be potentially possible to find a way but if it's too complicated I do spend since the rest of the script works :)
With GNU sed :
sed -r 's/([A-Z][^A-Z.]+)/\1./g;s/[0-9]{4}/.&/g;s/([0-9])([0-9]{4})[^$]/\1.\2./;s/SXXEXXW/SXXEXX.W/;s/(S[0-9][0-9])\./\1/'
Example :
$ echo Nashville2012SXXEXXW.ac3 | sed -r 's/([A-Z][^A-Z.]+)/\1./g;s/[0-9]{4}/.&/g;s/([0-9])([0-9]{4})[^$]/\1.\2./;s/SXXEXXW/SXXEXX.W/;s/(S[0-9][0-9])\./\1/'
Nashville.2012.SXXEXX.W.ac3
$ echo HowToGetAwayWithMurderSXXEXXW.ac3 | sed -r 's/([A-Z][^A-Z.]+)/\1./g;s/[0-9]{4}/.&/g;s/([0-9])([0-9]{4})[^$]/\1.\2./;s/SXXEXXW/SXXEXX.W/;s/(S[0-9][0-9])\./\1/'
How.To.Get.Away.With.Murder.SXXEXX.W.ac3
$ echo HawaiiFive02010S03E08W.ac3 | sed -r 's/([A-Z][^A-Z.]+)/\1./g;s/[0-9]{4}/.&/g;s/([0-9])([0-9]{4})[^$]/\1.\2./;s/SXXEXXW/SXXEXX.W/;s/(S[0-9][0-9])\./\1/'
Hawaii.Five.0.2010.S03E08.W.ac3