linux - 如果第一个字母不是字母,则使用 awk 将一个列值替换为另一个列值
问题描述
我有以下 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'
. 我也用谷歌搜索但未能找到合适的解决方案。这是一个我认为可能有帮助的链接。
过滤第一列中只有字母的行。谢谢你。
解决方案
推荐阅读
- ios - Swift 5.1 错误:[插件] AddInstanceForFactory:没有为 id 注册工厂
- r - 用于生成表格的 R 包
- jenkins-pipeline - Jenkins Groovy 管道在通过先前测试的电子邮件中显示失败的测试
- entity-framework - EF Core Remove-Migration 删除的不仅仅是最近的迁移
- java - 如何用两个键盘键终止 java 程序?
- reactjs - 如何设置变量函数的状态
- r - 从 pdf 文件中读取 QR
- python - Python - 每次调用后向变量添加一个
- terraform - 在 gcp 监控过滤器中使用正则表达式
- svg - 如何缩放 svg