2列間の差の計算

2列間の差の計算

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

シェルを引用する必要があります。

おすすめ記事