如何删除双引号使用awk

这是我的命令:

awk -v DATE="$(date +"%Y%m%d")" -F"," 'NR>1 { print > "Assignment_"$1"_"DATE".csv"}' Text_01012020.CSV 

但它出来这个:

 Assignment_"A"_01012017 

我想删除“___”,你能帮我吗?

我发现这一点:

 awk -v DATE="$(date +"%d%m%Y")" -F"," 'NR>1 { gsub(/"/,"",$1); print > "Assignment_"$1"_"DATE".csv"}' Text_01012020.CSV 

但是我运行这个命令后,我的文件可以是assign_A_01012017,但是在我的文件里面。列没有​​被分隔到列中。 怎么样?

awk使用

 awk -F, -v DATE="$(date +'%Y%m%d')" 'NR>1{s=$1; gsub(/"/,"",s); print > "Assignment_"s"_"DATE".csv"}' Text_01012020.CSV 

说明

 awk -F, -v DATE="$(date +'%Y%m%d')" ' # Start awk, where field sep being comma # and variable DATE with current date NR>1{ # If no records greater than 1 then s=$1; # save field1 data to variable s gsub(/"/,"",s); # substitute double quote with null in variable s, so here we remove quote # print current record/line to file Assigment_{field1}_{current_date}.csv # {field1} = value of variable s after removing double quote # {current_date} = value of variable DATE print > "Assignment_"s"_"DATE".csv" } ' Text_01012020.CSV 
 awk -v DATE="$(date +"%d%m%Y")" -F"," 'BEGIN{OFS=","}NR>1 { gsub(/"/,"",$1); print > "Assignment_"$1"_"DATE".csv"}' Text_01012020.CSV 

只需设置“OFS”配置,输出将以逗号分隔。

如果你想包括你的列名,那么阅读与NR==1的情况下:

 awk -v DATE="$(date +"%d%m%Y")" -F"," 'BEGIN{OFS="," } NR==1 {COLUMN_NAME=$1} NR>1 { gsub(/"/,"",$1); print > "Assignment_"$1"_"COLUMN_NAME"_"DATE".csv"}' a.txt 

你也可以自己学习这个伟大的教程