Como converter uA / mA para uA em cada linha do arquivo csv usando c shell?

1

Eu tenho um arquivo * .csv como abaixo. O que eu quero fazer é converter todas as unidades em uma unidade (uA). Qualquer um pode ajudar a fazer isso em c shell?

    
por lhphuc 11.11.2016 / 06:41

2 respostas

1

Aqui está o meu código, agora funciona bem para mim.

# 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
    
por 15.11.2016 / 07:56
0

Não tenho certeza se vale a pena fazer no csh, mas aqui está uma solução "bash":

cat foo.csv | while IFS='' read -r line; do
    multiplicand="$(
        echo "$line" | 
        perl -pe 's/^.*?([\.0-9]+)mA$//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
    
por 11.11.2016 / 10:41