約2500万行の大容量CSVファイルがあります。256リスト。 CSVファイルのフィールド区切り文字は~
文字です。
次のように、データの最初の2つの列を変更したいと思います。
From : data1~data2~data3..................................
To : "data1"~"data2"~data3................................
現在使用していますが、awk
次のようになります。
cat file | awk -F "~" '{print "\""$1"\"""\""$2"\"~"$3"~"$4"~"...................}'
たとえば、awkに256列を入力します。$4"~"$5"~"$6"~".....$256"~"
これをコーディングする他のより良い方法はありますか?
ベストアンサー1
いいえ、256フィールドをすべて指定する必要はありません。最初の列と2番目の列を変更して以下を実行し、ファイルを個別に読み取るためにwhileを使用せずにprint
一緒に実行します。OFS='~'
cat
awk
awk
awk -F'~' '{$1="\""$1"\""; $2="\""$2"\""; print}' OFS='~' infile
最後の2つのフィールドを変更します。
awk -F'~' '{$(NF-1)="\""$(NF-1)"\""; $NF="\""$NF"\""; print}' OFS='~' infile