这是我的命令:
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
你也可以自己学习这个伟大的教程