Shell入门(二)grep Awk find Sed操作命令

前言

本章主要介绍shell常用的四大指令

一、介绍

1)find命令

1.1)基本用法

  • find . -name “test.txt” 查找当前目录下名字为test.txt的文件

  • find . -maxdepth 1 -name “test.txt” 查找第一级目录下名字为test,txt的文件

  • find . -size +20M 查找当前目录下大于20M的

  • find . - maxdepth 1 -size +50M -type f -exec mv {} /tmp/; 查找当前第一级目录大于50M的文件并移动到tmp

  • find ./ -type f -mtime +1 查1天以前的文件

  • find ./ -type f -name “*.tar.gz” -mtime +7 | xargs rm 删除七天以前的文件

1.2)Test

Shell入门(二)grep Awk find Sed操作命令

2)grep命令

  • grep是文本过滤命令

2.1)匹配条件

匹配条件 含义
-a 不忽略二进制数据
-E 将范本样式为延伸的普通表示法来使用,扩展正则表达式
-i 忽略字符大小写的差别
-n 在显示符合范本样式的那一列之前,表示出该列的编号
-s 不显示错误信息
-v 反转查找
^ 匹配字符串开始
$ 匹配字符串结尾

例:

grep “4” test.txt 匹配所有包含4的

grep -v “4” test.txt 匹配除4之外的所有

grep -i “abc” test.txt 匹配所有包含忽略大小写的abc

grep abc$ test.txt 匹配所有以abc结尾的

grep ^abc test.txt 匹配所有以abc开头的

grep ^abc$ test.txt 匹配abc(即以abc开头以abc结尾)

grep -E “abc|ABC” test.txt 扩展正则表达式 匹配abc或者ABC

Test

  • test.txt
    Shell入门(二)grep Awk find Sed操作命令
  • console
    Shell入门(二)grep Awk find Sed操作命令

2.2)匹配次数

匹配符号 含义
* 字符出现 [0- 任意次 ]
\? 字符出现 [0-1 次 ]
\+ 字符出现 [1- 任意次 ]
\{n} 字符出现 [n 次 ]
\ {m,n\} 字符出现 [ 最少出现 m 次,最多出现 n 次 ]
\{0,n\} 字符出现 [0-n 次 ]
\{m,\} 字符出现 [ 至少 m 次 ]
xy \{n\}xy 关键字出现 [n 次 ]

例:

  • grep “abc*” test.txt 关键字c出现任意次
  • grep “abc?” test.txt 关键字c出现0-1次
  • grep “abc+*” test.txt 关键字c出现1-任意次

3)sed命令

  • sed为行编辑器

3.1)匹配条件

操作指令 含义
p 显示
d 删除
a 添加
c 替换
w 写入
i 插入
G 空行

例:

  • sed ` /makasa/a ###` test1.txt 在makasa之后加###

  • sed `/makasa/i ###` test1.txt 在makasa之前加###

  • sed -n ‘1,3P’ test1.txt 打印test1文本中的1-5行

3.2) Test

  • test1.txt
    Shell入门(二)grep Awk find Sed操作命令
  • console
3.2.1) P指令操作

Shell入门(二)grep Awk find Sed操作命令

3.2.2) d指令操作

Shell入门(二)grep Awk find Sed操作命令

3.2.3) w指令操作

Shell入门(二)grep Awk find Sed操作命令

3.2.4) i指令及a指令操作

Shell入门(二)grep Awk find Sed操作命令

3.2.5) G指令操作

Shell入门(二)grep Awk find Sed操作命令

4)awk命令

4.1)基本用法

  • 打印第n列:cat /text1.txt |awk ‘{print $n}’

  • 打印最后一列:cat /text1.txt |awk ‘{print $NF }’

  • 以:进行分割 cat /text1.txt |awk -F: ‘{print $n}’

4.2) Test

Shell入门(二)grep Awk find Sed操作命令
Shell入门(二)grep Awk find Sed操作命令