zhangjian5255 2024-06-05 10:55 采纳率: 50%
浏览 2
已结题

linux命令sed批量修改一类值

a=1
a=0
a=2

文件中很多这种,想把所有不为0的记录都改成a=0,怎么写哈

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-05 10:55
    关注

    引自免费微信小程序:皆我百晓生

    要使用sed命令在Linux中批量将文件中所有不等于0的"a=*"行替换为"a=0",你可以执行以下步骤:

    首先,确保你有权限编辑目标文件,并且了解这个操作会永久更改文件内容。为了安全起见,建议先备份文件。

    接下来,使用以下sed命令进行替换:

    sed -i 's/a=[^0]/a=0/g' your_file.txt
    

    这里解释一下命令的各个部分:

    • sed: 这是流编辑器(Stream Editor)的缩写。
    • -i: 这个选项告诉sed在原地修改文件(如果不加此选项,它会输出到标准输出)。如果不想立即修改文件,可以先测试命令的效果,然后确认无误后再添加 -i
    • 's/a=[^0]/a=0/g': 这是sed的替换模式,其中:
      • s: 是 "substitute" 的首字母,表示替换操作。
      • /a=[^0]/: 是查找模式,匹配形如 "a=*" 的行,但不包括 "0"。
        • a=: 直接匹配 "a="。
        • [^0]: 使用字符类 [^...] 表示匹配任何不是0的字符。
      • /a=0/: 是替换字符串,即将找到的匹配项替换为 "a=0"。
      • g: 这个标志表示全局替换,在每一行中查找并替换所有匹配项,而不仅仅是第一个。

    确保将 your_file.txt 替换为你的实际文件名。运行此命令后,文件中所有不等于0的"a=*"记录都将被替换为"a=0"。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月13日
  • 已采纳回答 6月5日
  • 创建了问题 6月5日

悬赏问题

  • ¥15 工价表引用工艺路线,应如何制作py和xml文件
  • ¥15 根据历史数据,推荐问题类型
  • ¥15 需要仿真图,简单的二阶系统实例
  • ¥15 stm32光控照明仿真
  • ¥15 使用人工智能的方法生成满足一定统计参数要求的随机数序列
  • ¥15 SENT协议中相关问题咨询
  • ¥15 URL地址href跳转问题
  • ¥15 mysql数据库备份恢复
  • ¥15 mmdetection mask-rcnn
  • ¥25 matlab可以将微分方程的解显示为相图形式吗