shell编程四剑客:find、grep、sed、awk
shell编程四剑客之find,主要用于查找Linux操作系统的某个文件/目录的路径;
shell编程四剑客之grep,抓取,主要用于过滤和匹配文件内容,以行为单位进行匹配;
shell编程四剑客之sed,流编辑器命令,用于文件的内容替换、追加、修改、删除等,类似vi编辑器,是一种非交互的编辑器;
shell编程四剑客之awk, 支持变量、功能函数、控制语句,主要用于对文本内容的过滤和匹配,比grep匹配的内容更加精确,更灵活进行匹配;
命令语法
a) find (find path -option action(-exec{}\;))
例子:find / -name "*.log"
find / -name "a*.log"
find / -name "a*.log" -exec cp {} /tmp/ \;
参数:
-exec 匹配一次执行一次 命令 {} /路径/ \;
xargs 所有匹配完成一次执行
-Mtime 时间参数
-type 文件类型参数
-size 文件大小参数
-user 文件所有者
b) grep
语法格式: grep option keyword filename
例子:
grep
参数:
-i 忽略大小写
-o 只显示搜索的内容
-v 反选
-n 显示内容原本所在行号
c) awk
参数:
-F 指定分隔符
NR 表示当前检索的行
NF 字段数量
例子:
awk -F ":" 'NR==1 {print $1,$2}' /etc/passwd
d) sed 用于文本内容编辑(替换、插入、删除、修改、增加)
参数:
-e 表示打印输出结果,只是测试
-i 不打印结果,直接替换
替换间隔符:
@@@ ### ///