mirror of
https://github.com/chmln/sd
synced 2024-11-24 20:23:04 +00:00
alter note
This commit is contained in:
parent
97bd728aef
commit
73429fb36e
1 changed files with 57 additions and 5 deletions
|
@ -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
|
||||||
|
打印版本信息
|
||||||
|
```
|
Loading…
Reference in a new issue