Last active
July 24, 2022 03:19
-
-
Save xbalaji/9fb11165bf4ff66ecb5b5097dde41d79 to your computer and use it in GitHub Desktop.
TorrentFileMassage.sh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #! /usr/bin/env bash | |
| SEQ_NUM="01" | |
| # generate directories list | |
| ORG_DIRS="./org-dirs${SEQ_NUM}.txt" # original dirs list | |
| GEN_DIRS="./gen-dirs${SEQ_NUM}.txt" # generated dirs list | |
| MV_DIRSH="./move-dirs${SEQ_NUM}.sh" | |
| #find TorrentDownload/ -maxdepth 1 -type d -name "* *" > "${ORG_DIRS}" | |
| find TorrentDownload/ -maxdepth 1 -type d > "${ORG_DIRS}" | |
| rm -f "${GEN_DIRS}" | |
| rm -f "${MV_DIRSH}" | |
| cat ${ORG_DIRS} | while read -r fname | |
| do | |
| rname=$(echo "$fname") | |
| rname=$(echo "$rname" | sed -e 's/c++/CPP/gi') # c++ --> CPP | |
| rname=$(echo "$rname" | sed -E -e "s/\. //g;s/\.{2,6}//g") # squeeze ". " and "..." | |
| rname=$(echo "$rname" | sed -e 's/\(\[.*\]\)//g') # between [ ] | |
| rname=$(echo "$rname" | sed -e 's/\((.*)\)//g') # between ( ) | |
| rname=$(echo "$rname" | sed -E -e 's/(pdf|epub|mobi|gooner)//gi') # extension in names | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)By\([_ -]\),\1By\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)Of\([_ -]\),\1Of\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)To\([_ -]\),\1To\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)And\([_ -]\),\1And\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)The\([_ -]\),\1The\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)Code\([_ -]\),\1Code\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)Make\([_ -]\),\1Make\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)With\([_ -]\),\1With\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)Your\([_ -]\),\1Your\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)China\([_ -]\),\1China\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)HowTo\([_ -]\),\1HowTo\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)Games\([_ -]\),\1Games\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)Learn\([_ -]\),\1Learn\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)Making\([_ -]\),\1Making\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)Python\([_ -]\),\1Python\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)Chinese\([_ -]\),\1Chinese\2,gi") | |
| rname=$(echo "$rname" | sed -e 's/[ (),&\$+_]//g;s/-//g') # unwanted chars | |
| rname=$(echo "$rname" | sed -E -e 's/20[0-9]{2}//g') # remove year | |
| rname=$(echo "$rname" | sed -e "s/'//g") # single quote | |
| rname=$(echo "$rname" | sed -E -e "s/part/Pack/gi") # change part to Pack | |
| rname=$(echo "$rname" | sed -E -e "s/first/1st/gi") # first -> 1st | |
| rname=$(echo "$rname" | sed -E -e "s/second/2nd/gi") # second -> 2nd | |
| rname=$(echo "$rname" | sed -E -e "s/third/3rd/gi") # third -> 3rd | |
| rname=$(echo "$rname" | sed -E -e "s/fourth/4th/gi") # fourth -> 4th | |
| rname=$(echo "$rname" | sed -E -e "s/fifth/5th/gi") # fifth -> 5th | |
| rname=$(echo "$rname" | sed -E -e "s/sixth/6st/gi") # sixth -> 6th | |
| rname=$(echo "$rname" | sed -E -e "s/seventh/7th/gi") # seventh -> 7th | |
| rname=$(echo "$rname" | sed -E -e "s/eighth/8th/gi") # eighth -> 8th | |
| rname=$(echo "$rname" | sed -E -e "s/ninth/9th/gi") # ninth -> 9th | |
| rname=$(echo "$rname" | sed -E -e "s/tenth/10th/gi") # tenth -> 10th | |
| rname=$(echo "$rname" | sed -E -e "s/eleventh/11th/gi") # eleventh-> 11th | |
| rname=$(echo "$rname" | sed -E -e "s/1st/01/gi") # 1st -> 01 | |
| rname=$(echo "$rname" | sed -E -e "s/2nd/02/gi") # 2nd -> 02 | |
| rname=$(echo "$rname" | sed -E -e "s/3rd/03/gi") # 3rd -> 03 | |
| rname=$(echo "$rname" | sed -E -e "s/4th/04/gi") # 4th -> 04 | |
| rname=$(echo "$rname" | sed -E -e "s/5th/05/gi") # 5th -> 05 | |
| rname=$(echo "$rname" | sed -E -e "s/6th/06/gi") # 6th -> 06 | |
| rname=$(echo "$rname" | sed -E -e "s/7th/07/gi") # 7th -> 07 | |
| rname=$(echo "$rname" | sed -E -e "s/8th/08/gi") # 8th -> 08 | |
| rname=$(echo "$rname" | sed -E -e "s/9th/09/gi") # 9th -> 09 | |
| rname=$(echo "$rname" | sed -E -e "s/10th/10/gi") # 10th -> 10 | |
| rname=$(echo "$rname" | sed -E -e "s/11th/11/gi") # 11th -> 11 | |
| rname=$(echo "$rname" | sed -E -e "s/edition//gi") # remove edition | |
| rname=$(echo "$rname" | sed -e "s/fordummies/4Dummies/gi") # shorten | |
| [ "$fname" == "$rname" ] && continue | |
| echo mv \"$fname\" \"$rname\" >> "${MV_DIRSH}" | |
| echo $rname >> "${GEN_DIRS}" | |
| done | |
| # generate file list | |
| ORG_FILE="./org-file${SEQ_NUM}.txt" # original files list | |
| GEN_FILE="./gen-file${SEQ_NUM}.txt" # generated files list | |
| MV_FILESH="./move-file${SEQ_NUM}.sh" | |
| find TorrentDownload/ -maxdepth 1 -type f > "${ORG_FILE}" | |
| rm -f "${GEN_FILE}" | |
| rm -f "${MV_FILESH}" | |
| cat ${ORG_FILE} | while read -r fname | |
| do | |
| rname=$(echo "$fname") | |
| rname=$(echo "$rname" | sed -e 's/c++/CPP/gi') # c++ --> CPP | |
| rname=$(echo "$rname" | sed -E -e "s/\. //g;s/\.{2,6}//g") # squeeze ". " and "..." | |
| rname=$(echo "$rname" | sed -e 's/\(\[.*\]\)//g') # between [ ] | |
| rname=$(echo "$rname" | sed -e 's/\((.*)\)//g') # between ( ) | |
| # rname=$(echo "$rname" | sed -E -e 's/(pdf|epub|mobi|gooner)//gi') # extension in names | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)By\([_ -]\),\1By\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)Of\([_ -]\),\1Of\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)To\([_ -]\),\1To\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)And\([_ -]\),\1And\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)The\([_ -]\),\1The\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)Code\([_ -]\),\1Code\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)Make\([_ -]\),\1Make\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)With\([_ -]\),\1With\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)Your\([_ -]\),\1Your\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)China\([_ -]\),\1China\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)HowTo\([_ -]\),\1HowTo\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)Games\([_ -]\),\1Games\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)Learn\([_ -]\),\1Learn\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)Making\([_ -]\),\1Making\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)Python\([_ -]\),\1Python\2,gi") | |
| rname=$(echo "$rname" | sed -e "s,\([_ -]\)Chinese\([_ -]\),\1Chinese\2,gi") | |
| rname=$(echo "$rname" | sed -e 's/[ (),&\$+_]//g;s/-//g') # unwanted chars | |
| rname=$(echo "$rname" | sed -E -e 's/20[0-9]{2}//g') # remove year | |
| rname=$(echo "$rname" | sed -e "s/'//g") # single quote | |
| rname=$(echo "$rname" | sed -E -e "s/part/Pack/gi") # change part to Pack | |
| rname=$(echo "$rname" | sed -E -e "s/first/1st/gi") # first -> 1st | |
| rname=$(echo "$rname" | sed -E -e "s/second/2nd/gi") # second -> 2nd | |
| rname=$(echo "$rname" | sed -E -e "s/third/3rd/gi") # third -> 3rd | |
| rname=$(echo "$rname" | sed -E -e "s/fourth/4th/gi") # fourth -> 4th | |
| rname=$(echo "$rname" | sed -E -e "s/fifth/5th/gi") # fifth -> 5th | |
| rname=$(echo "$rname" | sed -E -e "s/sixth/6st/gi") # sixth -> 6th | |
| rname=$(echo "$rname" | sed -E -e "s/seventh/7th/gi") # seventh -> 7th | |
| rname=$(echo "$rname" | sed -E -e "s/eighth/8th/gi") # eighth -> 8th | |
| rname=$(echo "$rname" | sed -E -e "s/ninth/9th/gi") # ninth -> 9th | |
| rname=$(echo "$rname" | sed -E -e "s/tenth/10th/gi") # tenth -> 10th | |
| rname=$(echo "$rname" | sed -E -e "s/eleventh/11th/gi") # eleventh-> 11th | |
| rname=$(echo "$rname" | sed -E -e "s/1st/01/gi") # 1st -> 01 | |
| rname=$(echo "$rname" | sed -E -e "s/2nd/02/gi") # 2nd -> 02 | |
| rname=$(echo "$rname" | sed -E -e "s/3rd/03/gi") # 3rd -> 03 | |
| rname=$(echo "$rname" | sed -E -e "s/4th/04/gi") # 4th -> 04 | |
| rname=$(echo "$rname" | sed -E -e "s/5th/05/gi") # 5th -> 05 | |
| rname=$(echo "$rname" | sed -E -e "s/6th/06/gi") # 6th -> 06 | |
| rname=$(echo "$rname" | sed -E -e "s/7th/07/gi") # 7th -> 07 | |
| rname=$(echo "$rname" | sed -E -e "s/8th/08/gi") # 8th -> 08 | |
| rname=$(echo "$rname" | sed -E -e "s/9th/09/gi") # 9th -> 09 | |
| rname=$(echo "$rname" | sed -E -e "s/10th/10/gi") # 10th -> 10 | |
| rname=$(echo "$rname" | sed -E -e "s/11th/11/gi") # 11th -> 11 | |
| rname=$(echo "$rname" | sed -E -e "s/edition//gi") # remove edition | |
| rname=$(echo "$rname" | sed -e "s/fordummies/4Dummies/gi") # shorten | |
| [ "$fname" == "$rname" ] && continue | |
| echo mv \"$fname\" \"$rname\" >> "${MV_FILESH}" | |
| echo $rname >> "${GEN_FILE}" | |
| done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment