虽然 grep
的 Global Regular Expression Print ,但是实际上只支持普通正则表达式,对于模糊搜索,有两点可以更加“模糊”的方法:
一个是使用 -i
参数,这样可以忽略大小写,另一个是使用 -E
参数,这样可以使用拓展正则表达式。
grep
如果用于搜索一个二维表格,会出现忽略表头的情况,比如说我想查看 systemd 的 unit 单元,使用如下命令:
$ systemctl list-unit-files
UNIT FILE STATE PRESET
accounts-daemon.service disabled disabled
acpid.service disabled disabled
alsa-restore.service static -
alsa-state.service static -
apparmor.service enabled disabled
...
如果我希望只查看 v2raya
的服务,很容易写出这样的命令,获得如下输出:
$ systemctl list-unit-files | grep v2ray
v2ray.service disabled disabled
v2ray@.service disabled disabled
v2raya.service enabled disabled
但是这种输出就缺少表头了,我们可以将第一行也考虑在内,主要是利用了 |
这个控制符:
$ systemctl list-unit-files | grep "v2ray\|UNIT"
UNIT FILE STATE PRESET
v2ray.service disabled disabled
v2ray@.service disabled disabled
v2raya.service enabled disabled