gpt4 book ai didi

linux - 如果第一个字母不是字母,则使用 awk 将一个列值替换为另一个列值

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:31:19 28 4
gpt4 key购买 nike

我有以下 csv 文件:

ID                Name          Gender        NID
Y12 Jim M C12
Y23 David M C23
234 Bob M C22
2b1 Lucy F C24
2bb Lily F C25

如果 ID 中的第一个字母不是字母,我想做的是用 NID 值替换 ID 列的值。所以输出应该是

ID                Name          Gender        NID
Y12 Jim M C12
Y23 David M C23
C22 Bob M C22
C24 Lucy F C24
C25 Lily F C25

这只是一个示例。我的原始数据量要大得多,所以我必须使用 awk。关键问题是如何指定条件。我不清楚如何处理。我想到的代码类似于 awk -F, 'if $1 != ..., $1=$4'。我也用谷歌搜索但未能找到合适的解决方案。这是一个我认为可能有用的链接。 Filter lines that have only alphabets in first column .谢谢。

最佳答案

使用正则表达式。

awk '$1 ~ /^[^A-Z]/ { $1 = $4 }1' filename

DEMO

关于linux - 如果第一个字母不是字母,则使用 awk 将一个列值替换为另一个列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58141715/

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