linux基础操作命令—文件操作的基本命令(2)

一、grep和find的区别

区别:

              (1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。 

                   grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。

             (2)find相当于linux下的搜索,用来搜索文件的;

                    grep则是用来搜索文本的,主要是用来查找文字内容的;

二、grep和ask和sed的区别

  (1)单位不同:

           grep:以行为单位处理文本;

           awk::通过制定分隔符将一行或者一条记录分为多个字段,以字段为单位处理文本;

           sed :实现数据以行为单位进行处理

  (2)功能不同:

            grep:属于单纯的正则表达式匹配,主要是在一个文件中查找过滤需要的东西

            awk:awk的功能依赖于grep,属于一个文本处理工具,将一个文件处理成目标格式;

                        awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

             sed::按照一次处理一行的方式处理文件并把输出送到屏幕上

   (3)使用场景不同:

            grep:

                  a、结合find命令和管道:
                          你的一个音乐文件夹里有多种格式的文件,而你只想找到艺术家jay的mp3文件,并且不含有任何的混合音轨

                           [root@localhost ~]#find . -name ".mp3" | grep -i jay | grep -vi "remix"

                  b、用-c来统计数目
                          你手头有一个很大的文件,这个文件包含网址,比如www.baidu.com tieba.baidu.com等等。你想要知道有多少个                               隶属于百度的网址

                  c、-r 递归查找子目录
                         查找当前目录极其子目录下面包含匹配字符的文件
                        查找子目录,匹配后输出行号,这里的点表示当前目录

                        [root@localhost ~]# grep -nr HELLO_HWC_CSND_BLOG*

                 d、--line-buffered 打开buffering 模式
                         你有一个文件是动态的,它不断地添加信息到文件的尾部,而你想要输出包含某些信息的行。即持续的grep一个                             动态的流

                 e、结合ps查看进程

                 f、查找不包含某一个目录
                      [root@localhost ~]#grep -R --exclude-dir=node_modules 'some pattern' /path/to/search

                g、查找IP地址
                       这里用到了-o和-P命令,我们通过man grep查看

                h、查找邮箱

                       [root@localhost ~]# grep -oP "[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+" file.txt

            awk:

                   a、统计apache日志单ip访问请求数排名;

                   b、统计服务器当前单ip连接数最大的ip地址前十                   
             sed

                   a、太过庞大的文本

                   b、有规律的文本修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值