Click here to Skip to main content
15,902,939 members

Comments by Neha Thachil (Top 2 by date)

Neha Thachil 9-Feb-23 10:22am View    
I just realized it was because I was missing the "IFS=$'\n'" in the beginning that's why it wasn't working! I couldn't have figured it out without your explanation about the read command so thanks again!!
Neha Thachil 9-Feb-23 10:17am View    
Thanks Richard, that was actually really helpful but the surprising thing is that in the previous question I had to use the data file "data_v3.csv", to find the number of Female vs male in each contract type and it seemed to work and interpret both the other contract types.

See below:

%%!
IFS=$'\n'
contract_month_female=0
contract_month_male=0
contract_1year_female=0
contract_1year_male=0
contract_2year_female=0
contract_2year_male=0

for line in $(cat data_v3.csv)
do
IFS=','
read customerID gender PhoneService InternetService StreamingTV Contract TotalCharges Churn <<< $line
if [[ "$Contract" = "Month-to-month" ]]
then
if [ "$gender" = "Female" ]
then

contract_month_female=$((contract_month_female+1))

else
contract_month_male=$((contract_month_male+1))
fi

elif [[ "$Contract" = "One year" ]]
then
if [ "$gender" = "Female" ]
then

contract_1year_female=$((contract_1year_female+1))

else
contract_1year_male=$((contract_1year_male+1))
fi

elif [ "$Contract" = "Two year" ]
then
if [ "$gender" = "Female" ]
then

contract_2year_female=$((contract_2year_female+1))

else
contract_2year_male=$((contract_2year_male+1))
fi
fi
done

echo $contract_month_female
echo $contract_month_male
echo $contract_1year_female
echo $contract_1year_male
echo $contract_2year_female
echo $contract_2year_male

This was the output which was correct when I checked on excel too:

['1925', '1950', '718', '755', '845', '850']

So I wonder why it's not working here