x-cmd pkg | sd - sed 命令的现代化替代品

发布时间:2024年01月16日

简介

sd 是一个基于正则表达式的搜索和替换文本的命令行工具,类似于 sed,但 sd 使用更简单,对用户更为友好。

首次用户快速上手

  1. 使用 x sd 即可自动下载并使用

    • 在终端运行 eval "$(curl https://get.x-cmd.com)" 即可完成 x 命令安装, 详情参考 x-cmd 官网
  2. x-cmd 提供1分钟教程,其中包含了 sd 命令常用功能的 demo 示例,可以帮你快速上手 sd 。

  3. 使用案例

    sd-1min-cn

    # 从 stdin 中获取数据并将其中的逗号替换为换行符
    echo 'before, after' | x sd ',' '\n'
    
    # 从包含斜杠的字符串中提取内容
    echo "sample with /path/" | x sd '.*(/.*/)' '$1'
    
    # 将字符串中的数字用括号括起来
    echo 'f(x) = 4x + 12' | x sd '(\d+)' '($1)'
    
    # 对文件内容进行查找替换后输出到 stdout ,而不写入文件中
    x sd -p temp i path/file
    
    # 对文件内容进行查找替换并保存到文件中
    x sd temp i path/file
    

主要特点

  1. 使用通用正则表达式语法(与 JavaScript 和 Python 中的正则类似的语法)。相比之下,sed 使用的正则表达式比较别具一格,给用户带来额外的学习成本和维护难度。
  2. sd 还支持字符串文本模式进行查找和替换。
  3. 易于书写,易于阅读,易于维护。查找和替换表达式是分开的,这样您就不再需要使用反斜杠或记住哪些字符是特殊的需要转义的。
  4. 相比 sed,其默认设置往往更适用大多数典型场景。以最经典的从配置文件替换相应的值为例。
    1. sd 默认就是支持的: sd before after file.txt,简洁直观
    2. 在 sed 中,需额外采用 -i 这个参数: sed -i -e 's/before/after/g' file.txt
    3. sed 之所以略为麻烦,是因为其管道优先的设计理念,输出是默认到标准输出。而 sd 则是默认直接修改文件,这样更符合用户的直觉。
  5. sd 使用 rust 编写,性能优秀。在部份场景上,sd 甚至有相对 sed 更好的效率,详情请参考官方提供的 Benchmark

进一步阅读

  • 项目托管在 GitHub 上,里面的 README 文档提供了详细的参数功能和使用说明
  • 如果你想要学习如何在 Linux 上使用 sd 命令查找和替换,可以参考这篇文章 linux-sd-command
  • sd vs sed 是官方提供的对比文档,可以帮助你更好的理解 sd 的特点。
文章来源:https://blog.csdn.net/edwinjhlee/article/details/135631679
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。