filename.csv
次の内容を含むCSVファイルがあります。
ファイル名.csv:
"Afghanistan","94.0","81.1"
"Bahamas","42.9","43.2"
"Bolivia (Plurinational State of)","86.7","31.9"
"Brazil","76.7","0.0"
2つの列(列2 - 列3)の違いを計算したいが、間違った結果が表示されます。他の列のすべてのデータが消え、減算コマンドで誤った出力が表示されます。
私が使用したコマンドは次のとおりです。awk '{ print $2 - $3 }' filename.csv
私が得た結果は次のとおりです。
0
0
0
0
期待される出力ファイル:
"Afghanistan","94.0","81.1","12.9"
"Bahamas","42.9","43.2","-0.3"
"Bolivia (Plurinational State of)","86.7","31.9","54.8"
"Brazil","76.7","0.0","76.7"
助けてくれてありがとう。ありがとうございます。
ベストアンサー1
awkのデフォルトの区切り文字は空白ですが、csvは引用符とカンマを使用するため、awkはデフォルトでcsvファイルを1つの大きな列として扱います。
また、数字を認識するには引用符を削除する必要があります。したがって、-F'","'
区切り文字をカンマ区切りの引用符付き文字列に変更できます。これは、引用符付き文字列にコンマだけが含まれていない限り機能します。
awk -F'","' '{ print $2 - $3 }' filename.csv
シェルを引用する必要があります。