大きな.csvファイルの最初の2列を参照

大きな.csvファイルの最初の2列を参照

約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='~'catawkawk

awk -F'~' '{$1="\""$1"\""; $2="\""$2"\""; print}' OFS='~' infile

最後の2つのフィールドを変更します。

awk -F'~' '{$(NF-1)="\""$(NF-1)"\""; $NF="\""$NF"\""; print}' OFS='~' infile

おすすめ記事