更改 Bash 中数据集变量的值

Change values from a dataset variable in Bash

我是 Bash 的新手,我正在尝试更改文件 data.csv 逗号分隔的列的值。

在数据集中,我有变量 sex,只有 2 个可能的值 'Female''Male',我想将 Male 转换为 'm',将 Female 转换为 'f'。 我试过这个:

#!/bin/bash
sex=$(cut -d , -f 5 data.csv) #I select column 5 related with the variable sex
for i in $sex; do
    if [[$i='Female']]; then
    $i='f'
    fin
done

代码有误,不知如何修改

此外,我想用新的性价值观来更新我的data.csv

awk -F , -v OFS=, '
 == "Female" { = "f"}
 == "Male" { = "m"} 1' data.csv
# awk
# without header
awk -F, 'BEGIN{OFS=FS}{=="Male" ? ="m" : ="f"}1' data.csv > output1.csv
# with header
awk -F, 'BEGIN{OFS=FS} NR!=1{=="Male" ? ="m" : ="f"}1' data.csv > output1.csv

# bash
while read line 
do
    line=${line/,Male,/,m,}
    line=${line/,Female,/,f,}
    echo $line
done  < data.csv > output2.csv

# sed
sed 's/,Male,/,m,/; s/,Female,/,f,/' data.csv > output3.csv