如何使用c shell将csv文件每一行中的uA/mA转换为uA?

如何使用c shell将csv文件每一行中的uA/mA转换为uA?

我有一个 *.csv 文件,如下所示。我想要做的是将所有单位转换为一个单位(uA)。任何人都可以帮助在c shell中做到这一点吗?

在此输入图像描述

答案1

这是我的代码,现在它对我来说工作得很好。

# Add a space between result and unit
sed -e 's/mA/ mA/g' -e 's/uA/ uA/g' myfile.csv

#Convert
    awk -F" " '{\
    if ($4 == "mA"){\
        $3*=1000;\
        $4 = "uA";}\
    else\
        $3=$3;\
    }1' OFS=" " myfile.csv >> new_myfile.csv

答案2

我不确定这是否值得在 csh 中执行,但这是一个蹩脚的“bash”解决方案:

cat foo.csv | while IFS='' read -r line; do
    multiplicand="$(
        echo "$line" | 
        perl -pe 's/^.*?([\.0-9]+)mA$/\1/g'
    )"
    echo "$line" | \
    perl -pe 's/^(.*?)'"$(
        echo "$multiplicand" | 
        perl -pe 's/\./\\./g'
    )"'mA$/${1}'"$(
        bc -l <<< "$multiplicand"*1000 2>/dev/null | 
        perl -pe 's/\.0+//g'
    )"'uA/g'
done

相关内容