shell grep 命令详解

 

GREP 是 Global Regular Expression Print 的缩写

1.grep是一个搜索程序,它只能搜索匹配一个正则表达式的一行的存在性.

2.grep可以对一行采取唯一的动作是把它发送到标准输出. 如果该行不匹配正则表达式,则其不被打印.

3.行的选择只基于正则表达式. 行编号或其他准则不能用于选择行.

4.grep是一个过滤器. 它可用在管道的左边或右边.

5.grep不能用于增加,删除或修改行.

6.grep不能用于只打印行的一部分.

7.grep不能只读取文件的一部分.

8.grep不能基于前面的内容或下一行来选择一行.只有一个缓冲区,它只保存当前行.

一般格式:grep [options]  基本正则表达式 [filename]

grep家族的选项:

-b   在每一行前加上所在文件块的编号,就是指起文件中的字节偏移量

-c   只打印匹配模式的行编号记数

-i   在匹配文本时忽略大小写

-h   在查找多个文件时,指示grep不要将文件名加入到输入之前

-l   打印至少有一行匹配模式的文件列表

-n   在每行前显示其行编号

-s   哑模式. 执行其功能,但抑制所有输出

-v   逆向输出. 打印不匹配模式的行

-x   只打印完全匹配模式的行

-r   递归查询目录下文件

-f expfile 从expfile文件中获取要搜索的模式,一个模式占一行

举个例子:这有个文件夹 里面内容为

现在需要查找main这个关键字,要求知道偏移量,在文件的多少行,这是使用命令:

grep -b -n 'main' *.c

现在我要在上级文件夹中查找这些关键字,使用-r表示包含下级目录进行递归查询。

./*指明在当前目录进行查询

先看下起上级文件夹中的文件有:
./*指明在当前目录进行查询。

这次仍然查找main这个字符串,使用命令

grep -n  'main' -r ./*,事实上,要查找的关键字貌似最好加上"",不过我发现不加引号也行,不过还是加上把,可能出现什么位置错误。显示为

应该就是这么多了吧  关于grep命令的,如果发现还有什么会及时更新的~

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值