基于linux下的shell ~~~~ grep和egrep,基本元字符,cut剪切,sort排序,uniq对重复字符的处理

#######文本处理######

1)grep,egrep 的用法    建议使用egrep 都是以一行为单位的

正则表达式

grep  '^r'  /etc/passwd     //显示/etc/passwd文件中,以r开头

grep  '^root'  /etc/passwd     //显示/etc/passwd文件中,以root开头

egrep  '^root|^daemon'  /etc/passwd     //显示/etc/passwd文件中,以root或者daemon开头

-q  ##静默,无任何输出

egrep -m10  '/sbin/nologin'  /etc/passwd   //选取前十行

egrep -m1 '/sbin/nologin'  /etc/passwd   //统计含有/sbin/nologin的行数

egrep -m10 'sbin$' wsp  // 查看wsp中以sbin结尾的

基本元字符:' . '   ##过滤非空行

 过滤空行:-v是取反的意思  ^$ 一开始就结束了,也是取反的意思

 

基本元字符: + ? *        *就是所有的意思

+)

?)

 

egrep '(we){3}' 1.sh   //连续的三个we

egrep '(we){2,4}' 1.sh // 2-4个we 

egrep '(we){3,}' 1.sh // 至少三个we

egrep '(we)[ab]' 1.sh //wea或者web

egrep '[A-Z]' 1.sh  // A-Z之间的大写字母

 

  cut命令

 

练习1:获取主机ip 只要那一串数字,其他的都不要

练习2:检测网络

1:编写脚本

4)sort命令:排序

sort

            -n ##纯数字排序

            -r ##倒序

            -u ##去掉重复数字

            -o ##输出到指定文件中

            -t ##指定分隔符

            -k ##指定要排序的列

  [root@server ~]# sort westos    //什么参数都不加时,默认第一列进行排序

[root@server ~]# sort -n westos  // 纯数字排序

 

[root@server ~]# sort -u westos   // 去掉重复数字

[root@server ~]# sort -t : -k 2 westos  //-t指定分隔符   - k指定要排序的列

[root@server ~]# sort -nt : -k 2 westos  //-t指定分隔符   - k指定要排序的列

5)uniq命令:对重复字符处理

uniq

         -u ##显示唯一的行

         -d ##显示重复的行

          -c ##每行显示一次并统计重复次数 

练习:将/tmp目录中的文件取出最大的

方法1:使用cut  

      ls命令,-S能进行排序

      [kiosk@foundation0 ~]$ ls -Sl /tmp/ | head -2 | cut -d " " -f 9

方法2:使用awk

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/yinzhen_boke_0321/article/details/85239438
今日推荐