sed流编辑器
Sed都是在模式空间操作,只是展示,不会保存,展示结果之后,模式空间当中的内容会被删除
删除:
“d”:操作符,删除的是行
指定删除:
例:删除第三行,打印剩余内容
删除第二行到第五行
删除第五行到最后一行
除了第一行到第四行,其他的全部删除
匹配字符串内容进行删除:
匹配字符串包含o的行删除
删除包含两个之间所有的删除
字符串根据正则表达式进行删除
过滤空行
用grep方式过滤出非空行
(重点)Sed修改,替换:
操作符:
S:替换字符串
C:整行替换
y:单字符替换,替换前后的字符要保持一致
笔试题:把root开头为空行的替换成#。 /etc/passwd
对字母字符进行大小写替换:
例:把大写转换成小写
L&:转换成小写的特殊符号,在前面加上转义\
小写转换成大写
整行替换:
面试题:把ip地址换成1.1.1.1
单字符替换:
Sed命令:新增
a :在匹配行的下一行增加内容
i :在匹配行的上一行添加内容
r : 可以从其他文件读取内容,然后再匹配行
$a : 直接在文本的最后一行添加内容
$i :在倒数第三行和倒数第一行之间
sed命令如何对字符串的位置进行替换:
要用到扩展正则和分组的概念 -r ()
Sed面试题:
- 提取版本号
2.指定时间范围内看日志
Sed总结:
Sed可以增删改查
Sed也可以结合正则表达式
但是sed的 最主要的作用,改 增
使用sed命令时,注意,大文件一定要分割之后在交给sed处理
搭配正则表达式: sed -r {n} {n,} {n,m} {,m} 可以不加杠
使用sed -i 立即生效,要注意,事先做好测试,还要做好备份
AWK
AWK是文本三剑客之一,也是功能最强大的文本工具
他是逐行读取输入的文本内容,默认以空格和tab键作为分隔符,但是多个空格或者tab键的空格,会自动压缩成一个,按照指定的模式或者条件执行编辑命令
也是逐行匹配,对符合条件的才会进行格式化输出或者过滤
可以在免交互的情况下实现负杂的文本操作,完成自动化的配置
Awk ‘操作符 action’ file
想干啥 怎么干 处理对象
awk ‘BEGING{}’
BEGIN对条件做初始化操作
For((i=1;i<=10;i++))
默认的打印方式
Awk的常用选项
-F 指定分隔符,如果是空格,tab键,可以不加
-v 变量赋值 awk这个命令不能在外部获取变量值,只能在内部赋值
awk '{print}' /etc/passwd
打印文本内容
内置变量
NR
打印行号加打印全部内容
怎么打印奇偶行
偶数行
awk的运算:一定要定义一个初始条件
算小数
求幂的运算