Skip to content

Commit fa75c85

Browse files
committed
utils: shell: rg --glob
Signed-off-by: Luc Ma <[email protected]>
1 parent 523ba64 commit fa75c85

File tree

1 file changed

+15
-16
lines changed

1 file changed

+15
-16
lines changed

source/_posts/utils/shell.md

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -131,22 +131,21 @@ sed 和 awk 一样,都是按行处理文本的。
131131
* 如果 `-n` 后,完全都不打印了,但如果又想将处理后的行打印出来,使用 `p` 命令
132132
* `q` 命令的作用是**立即退出**,sed 的默认行为是对第2行处理完后,虽然后面的行都不需要处理,但 sed 仍然会继续将后面的每行往**模式空间**加载。
133133

134-
## grep(rg)
135-
136-
**在 Linux 内核源码目录下,搜索 `drivers/gpu/drm` 下所有的 `DRIVER_NAME` 定义,并排序后格式化输出**
137-
138-
命令如下:
139-
140-
```bash
141-
rg '#define DRIVER_NAME' drivers/gpu/drm --no-heading \
142-
| tr -s '\t' | tr '\t' ' ' | tr -s ' ' \
143-
| awk -F':' '{printf("%-52s%-40s\n",$1,$2)}' \
144-
| sort -k4
145-
```
146-
147-
- `rg` ([ripgrep](https://github.com/BurntSushi/ripgrep)) 比 grep 更快,更强大
148-
- `tr` 在不带任何选项时,默认执行替换,例子是中将 tab 替换成 空格, `-s` 表示 `squeeze-repeats`, 就是去掉重复的字符,例如多个空格只保留一个
149-
- `awk` 天生支持 C-Style printf
134+
## grep/ripgrep
135+
136+
- **在 Linux 内核源码目录下,搜索 `drivers/gpu/drm` 下所有的 `DRIVER_NAME` 定义,并排序后格式化输出**
137+
```bash
138+
rg '#define DRIVER_NAME' drivers/gpu/drm --no-heading \
139+
| tr -s '\t' | tr '\t' ' ' | tr -s ' ' \
140+
| awk -F':' '{printf("%-52s%-40s\n",$1,$2)}' \
141+
| sort -k4
142+
```
143+
- `rg` ([ripgrep](https://github.com/BurntSushi/ripgrep)) 比 grep 更快,更强大
144+
- `tr` 在不带任何选项时,默认执行替换,例子是中将 tab 替换成 空格, `-s` 表示 `squeeze-repeats`, 就是去掉重复的字符,例如多个空格只保留一个
145+
- `awk` 天生支持 C-Style printf
146+
147+
- `rg '\[package\]' -ttoml --glob '!Cargo.lock'`
148+
- 在一个 rust 项目顶层目录,只搜索 .toml 文件中的 `[package]`, 而忽略所有 Cargo.lock 文件
150149

151150
## 引号
152151

0 commit comments

Comments
 (0)