Skip to content

Instantly share code, notes, and snippets.

@xbalaji
Last active July 24, 2022 03:19
Show Gist options
  • Save xbalaji/9fb11165bf4ff66ecb5b5097dde41d79 to your computer and use it in GitHub Desktop.
Save xbalaji/9fb11165bf4ff66ecb5b5097dde41d79 to your computer and use it in GitHub Desktop.
TorrentFileMassage.sh
#! /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