gpt4 book ai didi

linux - 如何将值从一列复制到另一列?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:02:52 25 4
gpt4 key购买 nike

我有包含两个价格列的 CSV 数据。如果 $4 列中存在一个值,我想将它复制到同一行的 $3 列中。如果 $4 为空,则 $3 应保持原样。

这些都不起作用:

awk -F',' '{ if (length($4) == 0) $3=$4 }'
awk -F',' '{ if(!length($4) == 0 ) print $4 }'

这将输出样本表的每一行

awk -F',' '{ if(!length($4) == 0 ) print $0 }' inputfile

示例表不会输出任何内容

awk -F',' '{ if(length($4) == 0 ) print $3 }' inputfile

我已经清理了我的两个输入文件,修复了标题行,并使用 sed、awk、sort 和 join 将它们连接起来。现在我剩下的是一个 CSV,看起来像这样:

itemnumber,available,regprice,mapprice
00061,9,19.30,
00061030,31,2.87,3.19
00062,9,15.44,
00062410,2,3.59,3.99
00064,9,15.44,
00066850,29,2.87,3.99
00066871,49,4.19,5.99
00066878,3,5.63,7.99

如果同一行中的 $4 列有值,我需要覆盖 $3 列。最终结果将是:

itemnumber,available,regprice,mapprice
00061,9,19.30,
00061030,31,3.19,3.19
00062,9,15.44,
00062410,2,3.99,3.99
00064,9,15.44,
00066850,29,3.99,3.99
00066871,49,5.99,5.99
00066878,3,7.99,7.99

最佳答案

$ awk 'BEGIN{FS=OFS=","} (NR>1) && ($4!=""){$3=$4} 1' file
itemnumber,available,regprice,mapprice
00061,9,19.30,
00061030,31,3.19,3.19
00062,9,15.44,
00062410,2,3.99,3.99
00064,9,15.44,
00066850,29,3.99,3.99
00066871,49,5.99,5.99
00066878,3,7.99,7.99

关于linux - 如何将值从一列复制到另一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55803084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com