答案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