查找文本内容命令 grep

grep算是一个十分常用的linux命令了,用于查找文本,是加强版的ctrl+F,下面介绍一些常用的命令参数。

1. 显示所在行数、文件名、最大匹配个数等。

➜  ~ cat settings.json
{
    "window.zoomLevel": 0,
    "editor.fontSize": 14,
    "breadcrumbs.enabled": true,
    "editor.renderWhitespace": "none",
    "terminal.integrated.rendererType": "canvas",
    "terminal.integrated.fontWeightBold": "normal",
    "editor.minimap.enabled": false,
    "workbench.activityBar.visible": true,
    "terminal.integrated.shell.osx": "/bin/zsh"
}%

cat是打印文本内容的命令,这里不详述,主要是为了和grep的查找结果做对照。

  • grep -n [string] [file]: 显示[string]在[file]文件中的所在行数及内容,这里中括号[string]表示传入字符串,其他类似。
➜  ~ grep -n true settings.json
4:    "breadcrumbs.enabled": true,
9:    "workbench.activityBar.visible": true,
  • grep -H [string] [file]: 显示[string]在[file]文件中的所在文件及内容
➜  ~ grep -H true settings.json setting1.json
settings.json:    "breadcrumbs.enabled": true,
settings.json:    "workbench.activityBar.visible": true,
setting1.json:    "breadcrumbs.enabled": true,
  •  grep -m [num] [string] [file]: 显示[string]在[file]文件中出现[num]次的所在文件及内容。
➜  ~ grep -m 1 true settings.json
    "breadcrumbs.enabled": true,
➜  ~ grep -m 2 true settings.json
    "breadcrumbs.enabled": true,
    "workbench.activityBar.visible": true,
  • grep -v [string] [file]: 在[file]文件中查找不含有[string]的内容
➜  ~ grep -v true settings.json
{
    "window.zoomLevel": 0,
    "editor.fontSize": 14,
    "editor.renderWhitespace": "none",
    "terminal.integrated.rendererType": "canvas",
    "terminal.integrated.fontWeightBold": "normal",
    "editor.minimap.enabled": false,
    "terminal.integrated.shell.osx": "/bin/zsh"
}
  •  grep -e [string1] -e [string2] [file]: 在[file]文件中查找含有[string1]或含有[string2]的行
➜  ~ grep -e enable -e true settings.json
    "breadcrumbs.enabled": true,
    "editor.minimap.enabled": false,
    "workbench.activityBar.visible": true,
  • grep -i: 不区分大小写查找
  • grep -w: 字符串完全匹配
  • grep -C [num]: 展示匹配行上下[num]行内容

2. 文件及目录查找限制

  • grep -l [string] [files]: 在各文件[files]中展示含有[string]的文件名
  • grep -L [string] [files]: 在各文件[files]中展示不含有[string]的文件名
➜  ~ grep -l true settings.json instance.csv
settings.json
➜  ~ grep -L true settings.json instance.csv
instance.csv
  • grep [string] -R [dir]: 在目录[dir]下查找含有[string]的行数
➜  ~ grep true -R setting
setting/settings.json:    "breadcrumbs.enabled": true,
setting/settings.json:    "workbench.activityBar.visible": true,

 

3. 多条件查找

  • 命令可以叠加使用,如既展示文件名又展示行数,并且限制展示个数
➜  ~ grep -Hn -m 2 true setting1.json settings.json
setting1.json:4:    "breadcrumbs.enabled": true,
settings.json:4:    "breadcrumbs.enabled": true,
  •  grep -v -e [string1] -e [string2] [file] :查找既不含string1又不含string2的行内容
➜  ~ grep -v -e enable -e true settings.json
{
    "window.zoomLevel": 0,
    "editor.fontSize": 14,
    "editor.renderWhitespace": "none",
    "terminal.integrated.rendererType": "canvas",
    "terminal.integrated.fontWeightBold": "normal",
    "terminal.integrated.shell.osx": "/bin/zsh"
}
  • grep [string1] [file] | grep [string2] :查找既含有string1又含有string2的行内容,这里要用到通道符'|',简单说就是'|'前面命令的输出作为'|'后面命令的输入,
➜  ~ grep enable settings.json | grep true
    "breadcrumbs.enabled": true,
  • grep -l [string] -R [dir]: 查找目录[dir]下含有[string]的文件名
➜  ~ grep -l true -R setting
setting/settings.json

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值