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

如何用sed精准批量替换文件特定字符并提取纯数字?

精准处理文本的sed方案

针对你的需求,我们可以用更严谨的正则表达式实现,避免误替换的情况:

最终命令

sed -E 's/\r//g; s/(^|\s)-(\s|$)/\10\2/g; s/([0-9]+)MB/\1/g' file1 | column -t

命令细节解释

  • s/\r//g:保留你原有的处理逻辑,移除Windows格式的换行符,避免出现多余的^M字符
  • s/(^|\s)-(\s|$)/\10\2/g:精准匹配独立存在的连字符:
    • (^|\s)匹配行首或者空格,(\s|$)匹配空格或者行尾,确保只替换完全孤立的-
    • 替换时保留前后的空白(\1和\2),只把中间的-换成0,不会破坏原有空格布局
  • s/([0-9]+)MB/\1/g:精准移除数字末尾的MB:
    • ([0-9]+)捕获连续数字,只替换紧跟在数字后的MB为捕获的数字,其他位置的MB不会被处理
  • column -t:保持输出内容的排版整齐,和你原有的用法一致

测试效果

用你的示例数据测试,输出结果和预期一致,但处理逻辑更严谨:

3708  5073   5153  0
0     63097  9939  53376
0     817    681   271
0     2655   692   2112

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:58:34