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

请求实现从字符[A,H,B]到数值[1,0,-1]的文件转换方案

解决方案:将A/H/B转换为1/0/-1并优化转换流程

直接处理Temp.txt的方法

如果你想基于已有的Temp.txt生成Final.txt,用sed做三次全局替换就能搞定:

sed 's/A/1/g; s/H/0/g; s/B/-1/g' Temp.txt > Final.txt

这条命令会把Temp.txt里所有的A替换成1,H替换成0,B替换成-1,结果直接输出到Final.txt。

更高效的一步到位方案(无需中间文件)

其实完全可以跳过生成Temp.txt的环节,把两次转换合并成一条命令,减少磁盘IO操作:

cut -f2- Infile.txt | sed '1d; s/2/1/g; s/1/0/g; s/0/-1/g' > Final.txt

各部分作用:

  • cut -f2- Infile.txt:提取Infile.txt从第2列开始的所有内容
  • sed '1d':删除第一行(和你原来的1,1d效果一致,写法更简洁)
  • s/2/1/g:全局替换所有2为1
  • s/1/0/g:全局替换所有1为0
  • s/0/-1/g:全局替换所有0为-1

用awk实现(更易读的字段处理方式)

如果需要更清晰的字段级控制,也可以用awk完成转换:

cut -f2- Infile.txt | awk 'NR>1 {
    for(i=1;i<=NF;i++){
        if($i==2) $i=1
        else if($i==1) $i=0
        else if($i==0) $i=-1
    }
    print
}' > Final.txt

awk会跳过第一行(NR>1),然后遍历每一行的每个字段,根据原始数值直接替换成目标值,最后打印处理后的整行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:50:24