Linux系统shell脚本sed语言、expect语言

本文详细介绍了sed语言的语法、脚本命令、选项,以及如何使用它进行搜索替换。同时讲解了如何通过免交互方式使用多行重定向和expect语言进行自动化控制,包括spawn、expect和send命令的应用。
摘要由CSDN通过智能技术生成

目录

一、sed语言

(一)语法

(二)sed脚本语法及命令

1.p手动打印

2.q 提前退出    

​编辑

3.d 删除行

4.a 在指定行后面追加文本

5.i 在指定行前面追加文本

6.c 替换指定行

(三) sed 选项

1.-n  选项

2.-r 选项

3.-i 选项

(四)搜索替换

(五)分组后项引用

(六)示例

二、免交互

(一)多行重定向

1.格式

2.示例

(二)expect语言

1.定义     

2.基本命令

① 脚本解释器

②spawn命令

③expect命令

④send命令

⑤结束符

3.示例


一、sed语言

在不打开文件的情况下修改文件内容,取一行,处理一行,输出一行,直到最后一行。

(一)语法

sed  [选项]  ‘{自身脚本语法}’  [输入文件]

(二)sed脚本语法及命令

1.p手动打印

   p 将内容打印到屏幕,使用时关闭自动打印功能,-n选项

命令结果
'3p'打印第3行
'1,3p'

打印1-3行

'$p'最后一行
'1~2p'打印奇数行(~ 步进,1~2,1个间隔,每间隔1个打印一次)
'0`2p'打印偶数行(~ 步进,0~2,2个间隔,每间隔2个打印一次)

2.q 提前退出    

3.d 删除行

   ‘nd’               删除第n行

    ‘n,md’       删除n-m行

4.a 在指定行后面追加文本

   支持使用\n实现多行追加

    ‘naABC’                 在第n行后追加ABC

    'naABC\nEFG'       在第n行后追加两行,第1行为ABC,第2行为EFG

5.i 在指定行前面追加文本

     用法同a

6.c 替换指定行

   ‘ncABC’             将第n行替换成ABC

    支持使用\n实现替换多行

(三) sed 选项

1.-n  选项

    sed默认有自动打印功能,-n选项是关闭打印功能,一般配合脚本命令p使用

2.-r 选项

   开启扩展正则表达式

3.-i 选项

     在文件中添加内容,可以在-i是加.bak后缀备份修改的文件    

(四)搜索替换

s/旧字符/新字符/修饰符 查找替换,支持使用其它分隔符,可以是其它形式:s@@@,s###

(五)分组后项引用

( )内的按顺序标为123 ,引用时\1调用第一个()的内容,\n表示调用第n个()的内容,.*表示任意长度字符不管是什么字符

(六)示例

二、免交互

(一)多行重定向

在文件中修改多行

1.格式

           命令<< 开始标记符(通常为EOF)

           输入内容

           ...

           结束标记符(与开始标记符一致)

2.示例

(二)expect语言

1.定义     

       是建立在tcl(tool command language)语言基础上的一个工具,常被用于进行自动化控制和测试,解决shell脚本中交互的相关问题,使用前需要安装(yum install  -y expect)。

2.基本命令

① 脚本解释器

   expect 脚本中首先引入文件,表明使用的是哪一种shell。expect的为:/usr/bin/expect

②spawn命令

   用于捕捉关键词,后面常跟一个linux执行命令。

③expect命令

   用于判断上层捕捉输出的结果是否有指定字符,有则立即返回,没有则默认等待10s。

④send命令

     expect命令判断完成需要返回时,发送需要交互的指令,想要传递给电脑的文字或字符,该命令不能自动回车换行,\n和\r是回车。

⑤结束符

  (1) expect eof 结束并返回原来环境,原来主机。

  (2) interact 结束但是不会返回原来的地方,保持当前状态,当前主机。

3.示例

   用expect脚本执行ssh远程连接192.168.233.20

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值