awk用引号连接csv列
我想连接csv文件的两列。我对csv的引用有一些问题awk用引号连接csv列,awk,Awk,我想连接csv文件的两列。我对csv的引用有一些问题 "column one","column two","column three" "A","1","A1" "B","2","B2" "C","3","C3" 我使用以下命令行: awk -F, '{$2=$3" - "$x;for(i=1;i<=NF;i++)if(i!=x)f=f?f FS $i:$i;print f;f=""}' x=3 file.csv 我想删除两列“3**”-“**C3”的内部引号Awk解决方案: awk
"column one","column two","column three"
"A","1","A1"
"B","2","B2"
"C","3","C3"
我使用以下命令行:
awk -F, '{$2=$3" - "$x;for(i=1;i<=NF;i++)if(i!=x)f=f?f FS $i:$i;print f;f=""}' x=3 file.csv
我想删除两列“3**”-“**C3”的内部引号
Awk
解决方案:
awk 'BEGIN{ FS=OFS="\042,\042" }{ $2=$2" - "$3; NF=2 }1' file.csv
输出:
"A","1 - A1"
"B","2 - B2"
"C","3 - C3"
Gnu sed:
测试:
kent$ cat f
"A","1","A1"
"B","2","B2"
"C","3","C3"
kent$ sed 's/","/ - /2' f
"A","1 - A1"
"B","2 - B2"
"C","3 - C3"
使用GNU
awk
$ awk -F, -v OFS=, 'NR==1{NF--} {print gensub(/","/," - ",2)}' file
"column one","column two"
"A","1 - A1"
"B","2 - B2"
"C","3 - C3"
对于第一行,删除最后一个字段。否则,用连字符替换带引号的逗号。预期的输出是什么?谢谢Kent。记住你的解决方案,但我想用AWK。
kent$ cat f
"A","1","A1"
"B","2","B2"
"C","3","C3"
kent$ sed 's/","/ - /2' f
"A","1 - A1"
"B","2 - B2"
"C","3 - C3"
$ awk -F, -v OFS=, 'NR==1{NF--} {print gensub(/","/," - ",2)}' file
"column one","column two"
"A","1 - A1"
"B","2 - B2"
"C","3 - C3"