sed命令及免交互

本文介绍了sed命令,包括其作为行编辑器的特点、命令格式、选项如-n和-i,以及具体操作如搜索替换、分组后向引用和多行重定向。同时提到了免交互expect脚本在自动化控制中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、sed概述

二、sed基本用法

 1、命令格式

 2、选项

  3、语法

4、搜索替代

5、分组后向引用

 三、多行重定向

 四、免交互expect脚本


一、sed概述

    sed 命令和 vim 不同,sed是行编辑器,一行一行处理文件。从文件或管道中读取一行,处理一行,输出一行;再读取一行,再处理一行,再输出一行,直到最后一行。 一次处理一行的设计模式使得sed性能很高,sed在读取大文件时不会出现卡顿的现象。如果使用vim命令打开几十M上百M的文件,明显会出现有卡顿的现象,这是因为vi命令打开文件是一次性将文件加载到内存,然后再打开。sed就避免了这种情况,一行一行的处理,打开速度非常快,执行速度也很快。

二、sed基本用法

 1、命令格式

sed  [选项]  '语法'    文件或标准输入或标准输出

 2、选项

 -n :关闭自动打印

 -r :使用拓展正则表达式

 -i :实际修改文件内容,-i.bak 表示在修改文件前先进行备份,产生一个 “源文件名.bak” 的文件

 

  3、语法

 '   ' 中的语法由地址和命令组成

 命令:

①p 手动打印,需要再前面加 -n选项

 ②q 表示对应位置后提前退出

 ③d 表示删除对应行

 ④a 表示在指定行的后面追加文本

 例:sed  '3anihao' 123  表示在123文件第三行后面一行加上nihao

 ⑤i 表示在指定行的前面追加文本

例: sed  '3inihao' 123  表示在123文件第三行前面一行加上nihao

 ⑥c 表示替换指定行的内容

⑦ = 等号表示显示行号

4、搜索替代

 格式:范围  s/旧字符/新字符/修饰符

查找替换,支持使用其它分隔符,例如用@或者#替代/。修饰符g 表示行内全局替换,p 显示替换成功的行。

5、分组后向引用

  分组后向引用必须要用sed -r选项使用拓展正则表达式,其难点是用正则表达式表达整行想要的内容。

 三、多行重定向

   多行重定向是指使用I/O重定向的方式将命令列表提供给交互式程序,是标准输入的一种替代品。注意结尾标记前后不能有任何字符,空格也不行。

语法格式:

命令     <<标记     >文件

....

......

>标记

 

 

 四、免交互expect脚本

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

书写expect脚本的注意点:

 1、linux默认没有安装expect软件,要先使用yum安装

 2、脚本文件名不能以.sh 结尾,可以直接不加后缀名

 3、脚本中声明解释器要写#!/usr/bin/expect ,不是#!/bin/bash 

 4、spawn 后面跟上要执行的命令

 5、expect 用于捕捉关键字,关键字要用"  " 引起来

 6、最后的结束符分为两种,expect  eof 表示交互结束后,回到原用户;interact 表示交互结束后会保持在终端,不退回原终端;且两者只能二选一。

目录

一、sed概述

二、sed基本用法

 1、命令格式

 2、选项

  3、语法

4、搜索替代

5、分组后向引用

 三、多行重定向

 四、免交互expect脚本


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值