第八节 Shell文本操作

一.find 查找命令的使用

  • 1.find . -name "*.txt"
    在当前目录下找以txt结尾的文件
  • 2.find . -name "[a-z]*"
    在当前目录下找以所有字母开头的文件
  • 3.find /etc -name "host*"
    在/etc目录下找以host开头的文件
  • 4.find . -perm 755
    在当前目录下找属性为755的文件
  • 5.find -user root
    在当前目录下找属主为root的文件
  • 6.find /var -mtime -5
    在/var下找更改时间在5天以内的文件
  • 7.find /var -mtime +3
    在/var下找更改时间在3天以前的文件
  • 8.find /etc -type d
    在/etc下查找文件类型为d的目录文件
  • 9.find /etc -type l
    在/etc下查找文件类型为l的链接文件
  • 10.find .-size +1000000c
    在当前目录下查找文件大小大于1M的文件,1M是1000000个字节
  • 11.find .-perm 700|xargs chmod 777
    找出当前目录下的所有权限为700的文件,并把其权限重设为777
  • 12.find .-type f|xargs ls -l
    查找出文件并查看其详细信息

二.正则表达式的使用

  • 1.^linux
    以linux开头的行
  • 2.$php
    以php结尾的行
  • 3 .
    匹配任意单字符
  • 4 .+
    匹配任意多个字符
  • 5 .*
    匹配0个或者多个字符
  • 6 [0-9a-z]
    匹配[]内任意一个字符
  • 7(linux)+
    出现多次linux单词
  • 8(web){2}
    web出现了2次以上
  • 9
    只用来屏蔽一个元字符的特殊含义

三.Grep搜索命令的使用

  • 1.grep "li qq"*
    在所有文件中查找 li qq文件
  • 2.grep -c "file" a
    在a文件中有多少行匹配到file
  • 3.grep -n "file" a
    在a文件中有多少行匹配到file,同时显示行和行号
  • 4.grep -i "file" a
    在a文件中查找file,并不区分大小写
  • 5.grep -v "file" a
    在a文件中过滤掉file所在的行
  • 6.grep -E "2004:22:5[0-9]" a
    在a文件中查找时间在2004:22:50->2004:22:59的所在行
  • 7.grep -E "[210]" a
    在a文件中查找不包含210的行
  • 8.grep -E "h*p" a
    查找a文件中包含h和p的行
  • 9.grep -E "[5-8][6-9][0-3]" a
    查找大于560小于893的行
  • 10.grep -E "4{2}" a
    查找包含两个4的行
  • 11.grep -E "4{2,}" a
    查找大于两个4的行
  • 12.grep -E "4{2,4} a
    查找大于两个4小于4个4的行
  • 13.grep -E "^$" a
    查找a文件中的空行
  • 14.grep "?" a
    查找a文件中包含?的行
  • 15.grep -E "^d" a
    查找a文件中以d开头的行
  • 16.grep -E "[d]" a

四.Awk编程的使用

  • 1.awk '{print $0}' access.log
    查找出file文件中的每一列
  • 2.awk '{print $1"\t"$7}' access.log
    查找出file文件中的第一列和第七列
  • 3.cat file | awk '$0 !~ /192.168.10.2/'|grep "php" |wc -l
    匹配192.168.10.2的IP地址的统计,!为不匹配

五.Sed行定位的使用

  • 1.sed -n '2'p file
    只打印第二行,不打印其他的行
  • 2.sed -n '1,4'p file
    从第一行到第四行的记录
  • 3.sed -n '/los/'p file
    打印匹配los的行
  • 4.sed -n '4,/los/'p file
    打印从第四行到匹配los的之间的所有行
  • 5.sed '1,2'd file
    把第一行和第二行全部删除

六.Sort排序的使用

  • 1.sort file
    把文件按字母的升序进行排序
  • 2.sort -r file
    把文件按字母的降序进行排序
  • 3.cat file sort -t: -k1 -r
    以":"进行分割后的第一列来倒序排序

七.Uniq唯一性的使用

  • 1.uniq -c file
    打印紧挨的重复行出现的次数
  • 2.uniq -d file
    只打印重复的行
  • 3.awk '{print $1}' /var/log/httpd/access_log|sort|uniq -c
    把apache网站的所有访问IP全部统计出来,并打印出统计次数

八.Split分离的使用

  • 1.split -2 file spt
    生成sptaa,sptab,sptac等多个文件,把a文件每两行分割成一个文件,每个文件的前缀都是以file开头的

你可能感兴趣的:(第八节 Shell文本操作)