我需要将除标头外的所有值转换为数字.我可以在shell脚本中执行此操作吗



我是shell脚本的新手。我需要将字符串中的值转换为整数,以便从csv文件中计算下面提到的各个列的总和。

列看起来像:"喜欢"、"喜欢"61〃"110〃;120,70

我尝试过使用awk-F","{sum+=$1}END{print sum}"但这并没有给我想要的结果,因为有些值是字符串。如何在将这些值相加之前将其转换为整数?

如果您确信;仅与数字一起使用,一个简单的

more file.csv | tr '"' ' ' > fixed.csv

应该做的工作


如果第一行是标题,您可以执行以下操作:

head -1 file.csv > fixed.csv
tail -n +2 file.csv | tr '"' ' ' >> fixed.csv

如果它满足您的需求,脚本版本是:

#!/bin/bash
if [[ $# != 2 ]]
then
printf "Usage:nscript.sh input_file.csv output_file.csvn"
exit -1
fi
set -o noclobber
head -1 "$1" > "$2"
tail -n +2 "$1" | tr '"' ' ' >> "$2"

set -o noclobber防止意外重写:NoClobber。

相关内容

最新更新