Linux四大命令
命令 | 功能 |
---|---|
find | 按目录处理文件 |
grep | 按文件处理内容 |
sed | 按行处理内容 |
awk | 按段处理内容 |
find [path...] [options] [action]
功能: 查找指定目录下符合条件的文件 默认: 在当前目录查找所有文件并显示 其他: 可使用-a/-o/-not来使用多个选项进行组合查找
- 根据文件名查找
- -name FILENAME 根据文件名
- -iname FILENAME 根据文件名(忽略大小写)
- -regex PATTERN 使用正则表达式匹配文件
- 根据用户查找
- -user USERNAME 根据属主查找
- -group GROUPNAME 根据属组查找
- -uid UID 根据UID查找
- -gid GID 根据GID查找
- -nouser 查找没有属主的文件
- -nogroup 查找没有属组的文件
- 根据文件属性查找
- -type [fdcblps] 查找指定类型的文件
- -size [+|-]N<k|M|G> 查找指定大小的文件 +Nk 查找SIZE大于Nk的文件 -NM 查找SIZE小于Mk的文件 NG 查找SIZE属于[(N-1)G, NG]的文件
- 根据时间查找
- -<m|a|c>time [+|-]N
- -<m|a|c>min [+|-]N 0代表当天 N代表查找N~N+1天前的文件 [N, N+1] -N代表 查找N天前到现在的文件 +N代表 查找N+1天前的所有文
- -newer FILENAME 查找比FILENAME还要新的文件
- 根据权限查找
- -perm [/|-]MODE
- MODE 精确匹配权限查找
- /MODE ugo任意一位匹配就满足条件
- -MODE 文件权限完全包含此权限才匹配
- action
- -print 显示查找到的文件
- -ls 显示文件详细信息
- -ok CMD {} ; 执行命令 每个文件均询问
- -exec CMD {} ; 执行命令 不询问
grep [options] STR FILE
功能: 在FILE中查找STR 支持正则表达式 其他: egrep等同于grep -e(使用扩展的正则表达式)
- options
- -i 忽略大小写
- -v 查找不匹配的
- -A N 查找到的行与下面N行合并
- -B N 查找到的行与上面N行合并
- -C N 查找到的行与上面和下面N行合并
sed [options] 'script' [file...]
功能: 按行处理文件内容 选项: script选项分为AddressCommand 其他: sed还支持跳转和多命令
- options
- -n 不输出信息
- -i 修改原文件
- -f F 从文件F读入script
- Address
- /RE1/, [/RE2/] 匹配正则表达式的RE1行到RE2行
- N1, N2 文件的N1行到N2行 ($表示最后一行, +|-调整行)
- Command
- ! CMD 反向执行命令 例: !p 把没有匹配到的显示出来
- y/OLD/NEW 类似
tr
命令的逐个替换 - s/pattern/string/[gi] 查找并替换 /可替换成其他避免转义字符
- a\string 在指定行后面追加新行string
- i\string 在指定行前面添加新行string
- r FILE 将指定的文件的内容追加到符合条件的后面
- w FILE 将匹配内容另存至指定文件中
- d 删除匹配内容
- p显示匹配内容
- l 显示Linux行尾符
$
- 正则表达式常用特殊变量
- & 匹配到的整串
- = 当前行号
- 多行处理Command
- n 处理下一行
- N 这一行和下一行合并处理
- D 多行删除
- P 多行显示
awk [options] 'script' [file...]
功能: 按段处理文件内容 选项: script选项分为PatternAction 其他: awk还支持大量C风格语法和内置函数
- options
- -FD 指定输入分割符为D
- -f F 从文件F读入script
- Pattern
- /RE/ 匹配正则表达式
- Expression, [Expression] 匹配关系表达式
<
<=
>
>=
==
!=
关系符号~
属于!~
不属于in
是否在这个范围内
- Action
- print 简单打印
,
分隔 - printf C风格格式化打印
- BEGIN和END语句可以额外写入script 'BEGIN{action}' 处理前执行一次action 'END{action}' 处理后执行一次action
- print 简单打印
- awk内置变量
- $0 整行 $N 第N段
- FS 输入分隔符 OFS 输出分隔符
- RS 输入行分隔符 ORS 输出行分隔符
- NR(多文件计数) FNR(单文件计数) 当前处理行数
- NF 当前行有多少段 ($NF 末段)
- FILENAME 文件名
注:linux命令中的各类正则表达式匹配并不一致