• awk sed grep find----Linux命令


    一、find 命令----找文件或目录

    1、find  /home/  -name  “test.txt”   #----在home路径下查找名字为test.txt的文件或目录
    
    2、find /home/ -name “*.txt”    #---在home路径下查找名字以.txt结尾的文件或目录
    
    3、find /home/ -name “*.txt” -type f   #---在home路径下查找名字以.txt结尾的文件
    
    4、find /home/ -name “*.txt” -type d   #---在home路径下查找名字以.txt结尾的目录
    
    5、find .  -name “*.txt” -type d   #---在当前路径下查找名字以.txt结尾的目录
    
    6、find  /home/ -name “*.txt” -type d -mtime +30  #---在home路径下查找名字以.txt结尾且30天以前建的目录
    
    7、find  /home/ -name “*.txt” -type d -mtime -1  #---在home路径下查找名字以.txt结尾且1天以内建的目录
    
    8、find /home/ -name “test.txt” | xargs rm -rf {} ;    #---在home路径下查找名字为test.txt的文件或目录并删除,其中{}为管道符前面的结果, ;是固定的写法
    
    9、find /home/ -name “test.txt” -exec cp {} /tmp/  ;   #---在home路径下查找名字为test.txt的文件或目录并复制到tmp路径下,其中{}为管道符前面的结果, ;是固定的写法,另外exec比xargs用的范围更广,建议用exec
    
    10、find /home/ -name “test.txt”  -size +10k   #---在home路径下查找名字为test.txt的文件或目录且大于10k
    
    11、find /home/ -name “test.txt”  -size +10M   #---在home路径下查找名字为test.txt的文件或目录且大于10M,注意M大写
    
    12、find /home/ -name “test.txt”  -perm 755   #---在home路径下查找名字为test.txt的文件或目录且权限为755,其中文件默认的权限为644,目录默认的权限是755

     二、grep ---匹配文件内内容

    备注:正则是直接在‘’中写的,条件单引号或双引号均可

     

    1、grep “root” /etc/passwd    #----匹配passwd文件中root内容行
    
    2、grep –color “root” /etc/passwd   #----匹配passwd文件中root内容行且root标颜色
    
    3、grep  “^root” /etc/passwd  #----匹配passwd文件中root开头内容行
    
    4、grep  “root$” /etc/passwd   #----匹配passwd文件中root结尾内容行
    
    5、grep  -V “#” /etc/passwd  #----匹配passwd文件中非#内容行
    
    6、grep  -n “root” /etc/passwd   #----匹配passwd文件中root内容行且显示行号
    
    7、egrep “[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$” text.txt    #----匹配文件中IP
    
    8、egrep “[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$” text.txt | wc -l   #----匹配文件中IP且统计个数

    三、awk ---数据统计

    备注:awk默认是使用空格进行分割列的,如果需要特殊定义分割方式需要 -F‘’ ” 进行自定义,主要条件是单引号

     

    1、awk ‘{print $1}’  text   #----打印文件第一列
    
    2、awk ‘{print $NF}’   text    #----打印最后一列
    
    3、awk  'NF>1{print $(NF-1)}'  text    #----打印倒数第二列
    
    4、awk ‘{print $1,$NF}’  text   #----打印1-最后一列
    
    5、awk ‘{print $1’:’$NF}’text    #----打印1-最后一列且中间加:号
    
    6、awk  -F”:” ‘{print $1}’ text    #----打印以冒号分割的第一列

    7、awk -F":" -v i=1 '{print $3+i}' text #----打印第3列且加上1 -v 是定义变量

    8、awk -F":" 'BEGIN {print "xxx"} {print $1,$7} END {print "yyyy"}' text #-----打印1和7列且在文件第一行前加xxx,在文件的末尾加yyyy

     

     四、sed ---编辑文本

    备注:如果需要真实改文件,需要重定向一下,另外sed的正则在两个/之间,条件单引号

    1、sed  ‘s/xx/yy/1’ test.txt  > test.txt    #-----替换文件中第一行的xx为yy
    
    2、sed  ‘s/xx/yy/g’   test.txt  > test.txt  #-----替换文件中所有的xx为yy
    
    3、sed  ‘2a ===’ test.txt >test.txt    #----在文件的第二行后增加等号行
    
    4、sed    ‘/wo/d’  test.txt >test.txt     #----删除文件中包含wo的行
    
    5、sed  -e  ‘2d’ -e  ‘s/xx/yy/g’ text.txt >test.txt  #删除文件第二行且把文件中所有的xx替换为yy  备注:-e 可连接多个条件
  • 相关阅读:
    SourceTree 3.3.6安装跳过注册安装
    Qt Framework 问题之 framework/Versions/A:bundle format unrecognized, invalid, or unsuitable
    数据结构之栈
    数据结构之单链表
    数据结构之数组
    QPixmap 在非QtCreator环境下无法显示jpg图片
    Mac端StartUML的安装和破解
    C++实现根据路径读取文件内容
    迁移至知乎
    XDRender_LightModeFeature_CauseLight 焦散1-DropRain
  • 原文地址:https://www.cnblogs.com/xiaokuangnvhai/p/11596551.html
Copyright © 2020-2023  润新知