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 可连接多个条件

 

posted @ 2019-09-27 11:02  小戳同学  阅读(348)  评论(0编辑  收藏  举报