输入 CSV 样本
name,mobile,address,usermobile
Testone, 111111111, "test,address"
Testtwo, 2222222222, "Testtwo,address"
现在我想将移动列值复制到 usermobile 列中。但是地址列中有一个逗号(,),虽然它在双引号内,但我没有得到预期的输出预期产出
name,mobile,address,usermobile
Testone, 111111111, "test,address",111111111
Testtwo, 2222222222, "Testtwo,address",2222222222
我已经通过使用以下命令进行了尝试,但没有得到预期的输出awk 'BEGIN{FPAT = "([^,]+)|(\"[^\"]+\")" && FS=OFS=","} (NR>1) && ($2!=""){$5=$2} 1' test.csv > output.csv
最佳答案
使用 GNU awk:
awk 'NR>1{$(NF+1)=$2} {print}' FS=', ' OFS=', ' file
输出:姓名、手机、地址、用户手机
Testone, 111111111, "测试, 地址", 111111111
Testtwo, 2222222222, "Testtwo, 地址", 2222222222
见:8 Powerful Awk Built-in Variables – FS, OFS, RS, ORS, NR, NF, FILENAME, FNR
关于ubuntu - 当其他列值在 Ubuntu 中的引号内有逗号时,将一个列值复制到 CSV 中的另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64308075/