目录
- 简介
- 首次用户快速上手
- 主要特点
- 进一步阅读
简介
sd 是一个基于正则表达式的搜索和替换文本的命令行工具,类似于 sed,但 sd 使用更简单,对用户更为友好。
首次用户快速上手
-
使用
x sd
即可自动下载并使用- 在终端运行
eval "$(curl https://get.x-cmd.com)"
即可完成 x 命令安装, 详情参考 x-cmd 官网
- 在终端运行
-
x-cmd 提供1分钟教程,其中包含了 sd 命令常用功能的 demo 示例,可以帮你快速上手 sd 。
-
使用案例:
# 从 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
主要特点
- 使用通用正则表达式语法(与 JavaScript 和 Python 中的正则类似的语法)。相比之下,sed 使用的正则表达式比较别具一格,给用户带来额外的学习成本和维护难度。
- sd 还支持字符串文本模式进行查找和替换。
- 易于书写,易于阅读,易于维护。查找和替换表达式是分开的,这样您就不再需要使用反斜杠或记住哪些字符是特殊的需要转义的。
- 相比 sed,其默认设置往往更适用大多数典型场景。以最经典的从配置文件替换相应的值为例。
- sd 默认就是支持的:
sd before after file.txt
,简洁直观 - 在 sed 中,需额外采用
-i
这个参数:sed -i -e 's/before/after/g' file.txt
- sed 之所以略为麻烦,是因为其管道优先的设计理念,输出是默认到标准输出。而 sd 则是默认直接修改文件,这样更符合用户的直觉。
- sd 默认就是支持的:
- sd 使用 rust 编写,性能优秀。在部份场景上,sd 甚至有相对 sed 更好的效率,详情请参考官方提供的 Benchmark。
进一步阅读
- 项目托管在 GitHub 上,里面的 README 文档提供了详细的参数功能和使用说明
- 如果你想要学习如何在 Linux 上使用 sd 命令查找和替换,可以参考这篇文章 linux-sd-command
- sd vs sed 是官方提供的对比文档,可以帮助你更好的理解 sd 的特点。