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
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命令中的各类正则表达式匹配并不一致