I have a directory with some text files that have data like below; I read them via a loop and put each line in an array! I don't know the correct way and if you know any better way, let me know.
Attack On Titan S03E20 720p WEB x264-URANiME[eztv] 6/17/2019 394 MB 114 37 Attack On Titan S003E020 WEB x264-URANiME Yesterday 172 MB 76 3 Attack On Titan S03E18 1080p WEB x264-URANiME 6/5/2019 1 GB 46 3 Attack On Titan S003E017 720p WEB x264-URANiME[eztv] 5/27/2019 555 MB 41 10 Attack On Titan s02E20 WEB x264-URANiME[eztv] 6/17/2019 171 MB 40 7 Attack On Titan S03e18 WEB x264-URANiME 6/3/2019 200 MB 23 3 Attack On Titan S03E16 720p WEB x264-URANiME[eztv] 5/20/2019 522 MB 23 3 Attack On Titan s03e19 WEB x264-URANiME Today 196 MB 20 0 Attack On Titan S03E14 720p WEB x264-URANiME[eztv] 5/6/2019 545 MB 19 2
Elements of each line are separated by a tab, as torrent name, added time, size(with MB/GB extension), seeds, and leech.
For example, for the first line sample data, mentioned Elements would be:
torrent name: Attack On Titan S03E20 720p WEB x264-URANiME[eztv] season number: 3 episode number: 20 added time: 6/17/2019 size: 394 MB seed: 114 leech: 37
note: size numbers are variant (some times MB - some times GB) though, I need to have them all as MB, how should I do it?
So I read each line of array with a loop and pull out each part that I needed for the next steps!
for array_list in "${TORRENT_FILE_ARRAY[@]}" do TORRENT_NAME=`echo "$array_list" | awk '{print $1}' FS="\t"` SEASON_NUMBER=`echo "$array_list" | awk '{print $1}' FS="\t" | awk '{print $4}' FS=" " | awk 'BEGIN {IGNORECASE = 1} {print $1}' FS="E" | sed "s/[Ss]//g" | sed 's/^0*//'` EPISODE_NUMBER=`echo "$array_list" | awk '{print $1}' FS="\t" | awk '{print $4}' FS=" " | awk 'BEGIN {IGNORECASE = 1} {print $2}' FS="E" | sed "s/[Ee]//g" | sed 's/^0*//' ` FILE_SIZE=`echo "$array_list" | awk '{print $3}' FS="\t"` LEECH_NUMBER=`echo "$array_list" | awk '{print $4}' FS="\t"` SEED_NUBMBER=`echo "$array_list" | awk '{print $5}' FS="\t"` # echo $TORRENT_NAME # echo $FILE_SIZE # echo $LEECH_NUMBER # echo $SEED_NUBMBER # echo "SEASON_NUMBER:" $SEASON_NUMBER # echo "EPISODE_NUMBER:" $EPISODE_NUMBER done
after reading each variable I want to add it to an array for each element I mentioned earlier, I mean something like:
TORRENT_NAME[$x]=$extracted_TORRENT_NAME FILE_SIZE[$x]=$extracted_FILE_SIZE LEECH_NUMBER[$x]=$extracted_LEECH_NUMBER SEED_NUBMBER[$x]=$extracted_SEED_NUBMBER SEASON_NUMBER[$x]=$extracted_SEASON_NUMBER EPISODE_NUMBER[$x]=$extracted_EPISODE_NUMBER
I want to fill these arrays in a loop, but don't know to grab the data correctly and what tool should I use to catch more efficiently!
Also, it is all in a script, and I'm not allowed to make any further file except script files and even changing source files!