alter note

This commit is contained in:
zhangyanming 2024-05-06 14:20:44 +08:00
parent 97bd728aef
commit 73429fb36e

View file

@ -6,13 +6,13 @@
为什么要使用它而不是现有的任何工具? 为什么要使用它而不是现有的任何工具?
*无痛的正则表达式*   `sd` 使用您已经熟悉的来自 JavaScript 和 Python 的正则表达式语法。不用再去处理 `sed``awk`怪癖 - 立即提高生产力。 *更好的正则表达式*   `sd` 使用您已经熟悉的来自 JavaScript 和 Python 的正则表达式语法。不用再去处理 `sed``awk`生僻语法 - 立即提高生产力。
*字符串文模式*   非正则表达式的查找和替换。不再需要反斜杠或记住哪些字符是特殊的并且需要转义。 *字符串文模式*   非正则表达式的查找和替换。不再需要反斜杠或记住哪些字符是特殊的并且需要转义。
*易读易写*   查找和替换表达式被拆分开来,这样更容易阅读和编写。不再需要处理未闭合和转义的斜杠。 *易读易写*   查找和替换表达式被拆分开来,这样更容易阅读和编写。不再需要处理未闭合和转义的斜杠。
*智能、常识的默认设置*   默认设置遵循常识,专为典型的日常使用而定制 *智能、符合常识的默认设置*   默认设置遵循常识,并且针对典型的日常使用进行了调整
## 与 sed 相比 ## 与 sed 相比
@ -51,7 +51,7 @@ hyperfine --warmup 3 --export-markdown out.md \
'sd "\"" "'"'"'" *.json > /dev/null' 'sd "\"" "'"'"'" *.json > /dev/null'
``` ```
| 命令 | 平均 [s] | 最低…最高 [s] | | 命令 | 平均 [s] | 最小耗时…最大耗时 [s] |
|:---|---:|---:| |:---|---:|---:|
| `sed -E "s/\"/'/g" *.json > /dev/null` | 2.338 ± 0.008 | 2.332…2.358 | | `sed -E "s/\"/'/g" *.json > /dev/null` | 2.338 ± 0.008 | 2.332…2.358 |
| `sed "s/\"/'/g" *.json > /dev/null` | 2.365 ± 0.009 | 2.351…2.378 | | `sed "s/\"/'/g" *.json > /dev/null` | 2.365 ± 0.009 | 2.351…2.378 |
@ -154,8 +154,10 @@ hyperfine --warmup 3 --export-markdown out.md \
fd --type file --exec cp {} {}.bk \; --exec sd 'from "react"' 'from "preact"' fd --type file --exec cp {} {}.bk \; --exec sd 'from "react"' 'from "preact"'
``` ```
### 极端情况 ### 特殊情况
sd 会将以 `-` 开头的每个参数解释为(可能是未知的)标志。 sd 会将以 `-` 开头的每个参数解释为(可能是未知的)标志。
尊重常见的惯例,使用 `--` 来表示标志的结束: 尊重常见的惯例,使用 `--` 来表示标志的结束:
```bash ```bash
@ -173,6 +175,7 @@ $ echo "./hello --foo" | sd -- "--foo" "-w"
``` ```
### 转义特殊字符 ### 转义特殊字符
要转义 `$` 字符,需使用 `$$` 要转义 `$` 字符,需使用 `$$`
```bash ```bash
@ -180,5 +183,54 @@ $ echo "./hello --foo" | sd -- "--foo" "-w"
$bar $bar
``` ```
### 帮助
使用方法
```shell
sd [OPTIONS] <FIND> <REPLACE_WITH> [FILES]...
[选项] <查找> <替换为> [文件列表]...
参数:
<FIND>
要搜索的正则表达式或字符串(如果使用 `-F` 选项)
<REPLACE_WITH>
替换每个匹配项的内容。除非处于字符串模式,否则您可以使用类似 $1、$2 等捕获值
[FILES]...
文件路径。这是可选项, - sd 也可以从标准输入 STDIN 中读取。
请注意sd 默认会直接修改文件。请参阅文档中的示例。
选项:
-p, --preview
以可阅读的方式显示更改(具体格式的细节可能会在将来更改)
-F, --fixed-strings
将 FIND 和 REPLACE_WITH 参数视为文字字符串
-n, --max-replacements <LIMIT>
限制每个文件的替换次数。0 表示无限制替换
[默认值为0]
-f, --flags <FLAGS>
正则表达式标志。可以组合使用(如 `-f mc`)。
c - 区分大小写
e - 禁用多行匹配
i - 不区分大小写
m - 多行匹配
s - 使 `.` 匹配换行符
w - 仅匹配完整单词
-h, --help
打印帮助信息(使用 '-h' 可以查看摘要)
-V, --version
打印版本信息
```