6
6
7
7
为什么要使用它而不是现有的任何工具?
8
8
9
- * 无痛的正则表达式 *   ; ` sd ` 使用您已经熟悉的来自 JavaScript 和 Python 的正则表达式语法。不用再去处理 ` sed ` 或 ` awk ` 的怪癖 - 立即提高生产力。
9
+ * 更好的正则表达式 *   ; ` sd ` 使用您已经熟悉的来自 JavaScript 和 Python 的正则表达式语法。不用再去处理 ` sed ` 或 ` awk ` 的生僻语法 - 立即提高生产力。
10
10
11
- * 字符串文字模式 *   ; 非正则表达式的查找和替换。不再需要反斜杠或记住哪些字符是特殊的并且需要转义。
11
+ * 字符串文本模式 *   ; 非正则表达式的查找和替换。不再需要反斜杠或记住哪些字符是特殊的并且需要转义。
12
12
13
13
* 易读易写*   ; 查找和替换表达式被拆分开来,这样更容易阅读和编写。不再需要处理未闭合和转义的斜杠。
14
14
15
- * 智能、常识性的默认设置 *   ; 默认设置遵循常识,专为典型的日常使用而定制 。
15
+ * 智能、符合常识的默认设置 *   ; 默认设置遵循常识,并且针对典型的日常使用进行了调整 。
16
16
17
17
## 与 sed 相比
18
18
@@ -51,7 +51,7 @@ hyperfine --warmup 3 --export-markdown out.md \
51
51
' sd "\"" "' " '" ' " *.json > /dev/null'
52
52
```
53
53
54
- | 命令 | 平均 [ s] | 最低…最高 [ s] |
54
+ | 命令 | 平均 [ s] | 最小耗时…最大耗时 [ s] |
55
55
| :---| ---:| ---:|
56
56
| ` sed -E "s/\"/'/g" *.json > /dev/null ` | 2.338 ± 0.008 | 2.332…2.358 |
57
57
| ` 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 \
154
154
fd --type file --exec cp {} {}.bk \; --exec sd ' from "react"' ' from "preact"'
155
155
```
156
156
157
- ### 极端情况
157
+ ### 特殊情况
158
+
158
159
sd 会将以 ` - ` 开头的每个参数解释为(可能是未知的)标志。
160
+
159
161
尊重常见的惯例,使用 ` -- ` 来表示标志的结束:
160
162
161
163
``` bash
@@ -173,12 +175,62 @@ $ echo "./hello --foo" | sd -- "--foo" "-w"
173
175
```
174
176
175
177
### 转义特殊字符
178
+
176
179
要转义 ` $ ` 字符,需使用 ` $$ ` :
177
180
178
181
``` bash
179
182
❯ echo " foo" | sd ' foo' ' $$bar'
180
183
$bar
181
184
```
182
185
186
+ ### 帮助
187
+
188
+ 使用方法
189
+ ``` shell
190
+ sd [OPTIONS] < FIND> < REPLACE_WITH> [FILES]...
191
+ [选项] < 查找> < 替换为> [文件列表]...
192
+
193
+ 参数:
194
+
195
+ < FIND>
196
+ 要搜索的正则表达式或字符串(如果使用 ` -F` 选项)
197
+
198
+ < REPLACE_WITH>
199
+ 替换每个匹配项的内容。除非处于字符串模式,否则您可以使用类似 $1 、$2 等捕获值
200
+
201
+ [FILES]...
202
+ 文件路径。这是可选项, - sd 也可以从标准输入 STDIN 中读取。
203
+ 请注意,sd 默认会直接修改文件。请参阅文档中的示例。
204
+
205
+ 选项:
206
+ -p, --preview
207
+ 以可阅读的方式显示更改(具体格式的细节可能会在将来更改)
208
+
209
+ -F, --fixed-strings
210
+ 将 FIND 和 REPLACE_WITH 参数视为文字字符串
211
+
212
+ -n, --max-replacements < LIMIT>
213
+ 限制每个文件的替换次数。0 表示无限制替换
214
+ [默认值为:0]
215
+
216
+ -f, --flags < FLAGS>
217
+ 正则表达式标志。可以组合使用(如 ` -f mc` )。
218
+
219
+ c - 区分大小写
220
+
221
+ e - 禁用多行匹配
222
+
223
+ i - 不区分大小写
224
+
225
+ m - 多行匹配
226
+
227
+ s - 使 ` .` 匹配换行符
228
+
229
+ w - 仅匹配完整单词
183
230
231
+ -h, --help
232
+ 打印帮助信息(使用 ' -h' 可以查看摘要)
184
233
234
+ -V, --version
235
+ 打印版本信息
236
+ ```
0 commit comments