1.sed
sed(stream editor) :一次处理一行内容,处理时,把当前的行存储在临时缓冲区,处理完后,输送到屏幕
格式:sed [参数] [操作]
sed [参数] ‘命令操作’ file
-n ##静默状态 (无输出)
-i ##直接修改文件的内容,而不是由屏幕输出
-e ##直接在命令行模式上进行sed操作编辑
-f ##直接将sed操作写在一个文件内
p ##显示
d ##删除
a ##添加
c ##替换
i ##插入
1)p
- 示例:显示不以#开头的行
2)a
- 示例:在hello后换行添加world
3)c
- 示例:将hello所在的行替换成world
5)i
- 示例:在hello前添加world
6)-i 参数
- 示例:更改文件,将world这一行替换为hello redhat
练习:将http的端口改为8080
执行结果如下:
2.awk 报告生成器
1)awk处理机制:根据模式一次从文件中抽取一行文本,对这行文本进行切片,默认使用空白字符作为分割符
格式:
awk '条件类型1{操作1} 条件类型2{操作2} ……' filename
-F "分隔符"
默认分割副为空格
- 示例1:
2)常用变量
FILENAME ##文件名
NR ##行
NF ##列
BEGIN {} ##读入第一行文本之前执行的语句,一般用来初始化操作
{} :逐行处理
END {} ##处理完最后一行文本后,执行
- FILENAME
- NR NF
练习1:打印/etc/passwd文件中的uid<2的用户,并输出用户名和uid
练习2:统计文本的总字段
3)if单分支
- 示例:统计uid小于等于500的用户个数
4)if双分支
- 示例:统计uid小于等于500和大于500的用户个数
5)for循环
- 示例:输出1……5