You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unix环境下替换文本第7列0为1、1为2的简便方法咨询

解决方案

直接修改awk逻辑,仅针对第7列做替换,不需要额外加首行、修改其他列的操作:

通用写法(兼容第7列存在0/1以外其他值的场景)

awk '{$7 = $7 == 1 ? 2 : ($7 == 0 ? 1 : $7)}1' old.txt | column -t > new.txt

逻辑说明:

  • 三元运算符判断第7列取值:是1则替换为2,是0则替换为1,其他值保持原样
  • 末尾的1是awk的固定简写,代表输出修改后的整行内容
  • 不需要额外插入首行,无需后续手动删行、提取列的操作

如果需要保留原始文件的多空格分隔格式,不需要对齐输出,去掉column -t并指定输出分隔符即可:

awk '{$7 = $7 == 1 ? 2 : ($7 == 0 ? 1 : $7)}1' OFS=" " old.txt > new.txt

精简写法(仅适用于第7列只有0/1两种取值的场景)

因为需求刚好是0→1、1→2,等价于第7列值+1,可以直接简化为:

awk '{$7 += 1}1' old.txt | column -t > new.txt

内容的提问来源于stack exchange,提问作者Aryh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 04:36:04