awkを使用して配列のCSVファイルに列を追加する必要があります。
例えば、
input.csv
a,10
b,11
array = (100 200)
output.csv
次のようにする必要があります
a,10,100
b,11,200
このコマンドを試しましたが動作しません
awk -F"," 'BEGIN { OFS = "," } {for (x in array) $3=array[x]; print}' input.csv> output.csv
ベストアンサー1
ぜひこれを使うべきですかawk
?このpaste
ユーティリティはまさにこの種の仕事のために設計されています。array
シェル配列を想定すると、次のようになります。
array=(100 200)
printf "%s\n" "${array[@]}" | paste -d, input.csv - > output.csv
printf
各配列メンバーを新しい行に入れるだけです。次に、カンマを区切り文字として使用して、paste
input.csvの入力行と-
(つまりパイプ出力)を貼り付けます。printf
配列がarray.txtなどの改行で区切られたファイルの場合:
100
200
それではもっと簡単です。
paste -d, input.csv array.txt > output.csv