目录
sed概述
-
sed编辑器时一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。
-
sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要存储在一个命令文本文件中。
sed的工作流程
sed 的工作流程主要包括读取、执行和显示三个过程
sed命令选项:
-e 多点编辑
-f 用指定的脚本文件来处理输入的文本文件
-h 显示帮助
-n 关闭自动打印
-r 使用扩展正则表达式
-i 实际修改文件的内容
-i.bak 实际修改前先备份 源文件 会产生一个 源文件.bak 的文件
语法字母在单引号中 ' '
p 手动打印
q 提前退出 3q 第三行退出
d 删除 3d 删除 第三行
a 后面追加 3a 第三行后面追加
i 上面插入 3i 第三行 上面 添加
c 替换 3c 将第三行 整行替换
s 替换 替换指定字符
= 显示行号
sed脚本格式
sed -n ‘3p’ 直接显示第三行
sed -n ‘$p’ 直接显示最后一行
seq 10 | sed 'p' 带有自动打印功能,p又再打印一遍
sed -n ‘3,6p’ 显示范围
sed -n ‘3,+4p’ 往后加四行
sed -n ‘/^b/,/^f/p’ /etc/passwd 打印以b开头到f开头的所有行
sed ‘3d’ 删除第三行
sed ‘2ahehe’ 第二行后追加hehe
sed ‘2a \hehe\nhaha’ \/n表示换行
sed ‘2ihehe’ 第二行前面插入hehe
sed ‘2chehe’ 第二行替换成hehe
sed -n ‘2!p’ 取反
搜索替代
格式 :sed -nr ‘s//\1/p’
面试题:提取版本号
ant-1.9.7.jar
ant-launcher-1.9.7.jar
antlr-2.7.7.jar
antlr-runtime-3.4.jar
aopalliance-1.0.jar
archaius-core-0.7.6.jar
asm-5.0.4.jar
aspectjweaver-1.9.5.jar
bcpkix-jdk15on-1.64.jar
bcprov-jdk15-1.46.jar
bcprov-jdk15on-1.64.jar
checker-compat-qual-2.5.5.jar
免交互
cat <<EOF
基本命令:
1.脚本解释器
expect 脚本中首先引入文件,表明使用的事哪一种shell
#!/usr/bin/expect
2.spawn
spawn 后面通常跟一个Linux执行命令,表示开启一个会话、进程,并跟踪后续交互信息
后面加 命令
3.expect
判断上次输出结果中是否包含指定的字符串,如果有则立即返回,否则就等待超时时间后返回;只能捕捉有swpan启动的进程输出;
用于接受命令执行后的输出,然后和期望的字符串匹配
4.send
向进程发送字符串,用于模拟用户的输入:该命令不能自动回车换行,一般要加 \r (回车) 或者\ n
5.结束符
expect eof
表示交互结束,等待执行结束,退回到原用户,与spawn对应
6.set
expect 默认的超时时间是10秒,通过set 命令可以设置会话超时时间,若不限制超时时间则应设置为-1
7.exp_continue
exp_continue 表示允许 expect 继续向下执行指令.
exp_continue附加于某个expect 判断选项之后,可以是该项被匹配后还能继续匹配expect 判断语句内的其他项。exp_continue类似于控制语句的continue语句。表示允许expect继续向下执行命令。
8.send_user
表示回显命令与echo相同