Linux运维文本处理三剑客之sed命令

一· sed简介

与Vi等全屏编辑器不同,sed是一个非交互式的文本编辑器,它可以对文本文件和标准输入进行编辑,    标准输入可以来自键盘、文件重定向、字符串、变量,甚至来自管道的文本。sed是对文本中的行进行    逐行处理。

sed只是对缓冲区中原始文件的副本进行编辑,并不编辑源文件。如何需要保存改动的内容,需要将输    出重定向到另一个文件,可以使用下面格式的命令:

sed ‘sed命令‘ input-file > result-file

二· sed调用的二种方式:

1.在shell命令行输入命令调用sed,格式为:

sed [option] ‘sed命令‘ 输入文件

例:sed -n    ‘1,5p‘  /etc/inittab

注意sed命令需要用单引号引起来

2. ./sed 脚本文件 输入文件

三· sed 常用的选项

-n : 表示不打印所有行到标准输出

-e:表示将下一个字符串解析为sed编辑命令,如果只传递一个编辑命令可省略

-r:表示可以使用扩展正则表达式元字符

-i:直接修改原文件

四· 文本定位方式

空为全局:即不定位行号为作用全文

x:x为指定精确行号

x,y:指定从x到y的行号范围

/pattern/:查询包含模式的行

/pattern/pattern/:查询包含两个模式的行

/pattern/,x:从与pattern匹配 的行到x号的行之间的行

x,/pattern/:从x号行到与pattern匹配的行之间的行

x,y!:查询不包括x和y行之间范围的行

!不能用于关键字匹配,无法表示不与/pattern/匹配的行

$: 表示最后一行

例:  sed -n ‘/\./p‘ /etc/inittab   匹配 . 符号

sed -n ‘$p‘   /etc/inittab    打印最后一行

sed -n ‘2,10!p‘ /etc/inittab  打印不在2至10行内的行

五· 基本编辑命令

i \ : 在匹配行的前面插入文本

a \: 在匹配行的后面插入文本

c \:将所匹配的文本行利用新文本替代(整行替换)

d:删除指定行

w:写入到一个新文件

r:从文本中读入文本

y:字符变换,将一系列字符变换为相应字符,对字符逐个处理

sed ‘y/12345/678910/‘ input  (被变换的字符序列/变换的字符序列/)

要求被变换的字符序列和变换的字符序列等长,否则报错

l:显示控制字符(非打印字符)

q:完成指定地址的匹配后立即退出

s:将所匹配的文本行利用新文本替换,和c \相比,s可以替换字符串,而c \只能替换整行

s/被替换的字符串/新字符串/[替换选项]

s/pattern/string/g

被替换字符串可以用正则表达式,而新字符串不可以

如: s/m.*l/lx/g (/符号可以换成@,#,%等符号,s#m.*l#lx#g)

还可以指定替换第几次匹配的关键字,只需在替换的选项上加相应数字,1-512之间

如:sed -n ‘s/mxl/lx/2p‘ (替换第2次匹配到的mxl字符为lx)

{}:指定在定位行上能执行的命令组,类似于选项-e

例: sed -n ‘/mxl/p‘ -e ‘/mxl/=‘ /etc/inittab 等价于

sed -n ‘/mxl/{p;=}‘ /etc/inittab

sed -n ‘/mxl/{s/m/M/g;s/x/X/g;}‘ /input

时间: 2024-10-10 23:45:28

Linux运维文本处理三剑客之sed命令的相关文章

Linux三剑客之sed命令

选定行的范围:,(逗号) 删除操作:d命令 显示模式空间内容 追加(行下):a\命令 插入(行上):i\命令 退出:q命令 多点编辑:e命令 从文件读入:r命令 写入文件:w命令 替换操作:s命令 替换文本中的字符串: 全面替换标记g 保持和获取:h命令和G命令 保持和互换:h命令和x命令 sed 简介 sed 工作原理 命令格式 常用选项: 地址定界: 编辑命令: 替换标记: sed元字符集(正则表达式) 高级编辑命令: sed用法实例 作业: 作业: sed命令 sed 简介 Stream

Linux运维必会MySQL30道基础命令

Linux运维必会MySQL 30道基础命令 老男孩老师教学与培训核心思想:重目标.重思路.重方法.重实践.重习惯.重总结. 版权声明:余连辉 本系列文档为<老男孩 Linux 运维实战培训中心>内部教学用教案,只允许 VIP 学员 个人使用,为保护大家的学习利益,禁止私自传播,违者将取消 VIP 学员资格.严重者我们将法律起诉.如果你已经参加本培训,即视为你已无条件接受上述内容说明! 联系方式: 意见投诉信箱:[email protected] 网站运维交流群:114580181 24605

【Linux】基础每日一命之sed命令

sed命令是利用script来处理文件 sed可依照script的指令,来处理.编辑文本文件.sed主要用来自动编辑一个或多个文件:简化对文件的反复操作:编写转换程序等 语法:sed [-hnV][-e<script>][-f<script文件>][文本文件] 参数说明:-e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件.-f<script文件>或--file=<script文件

shell三剑客之sed命令使用详解

sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有 改变,除非你使用重定向存储输出.Sed主要用来自动编辑一个或多个文件:简化对文件的反复操作:编写转换程序等. -sed的选项.命令.替换标记 命令格式 sed [option

1.10-linux三剑客之sed命令详解及用法

内容: 1.sed命令介绍 2.语法格式,常用功能 查询  增加  替换 批量修改文件名 第1章 sed是什么 字符流编辑器 Stream Editor 第2章 sed功能与版本 处理出文本文件,日志,配置文件等 增加,删除,修改,查询 sed  --version sed  -i 修改文件内容 第3章 语法格式 3.1 语法格式 sed [选项] [sed指令] [输入文件] sed -i.bak 's#oldboy#oldgril#g' oldbboy.txt 先备份在修改 -i   ---

Linux运维文档之nginx

NGINX安装配置1.检查并且安装依赖组件检查安装nginx的依赖性,nginx的模块需要第三方库的支持,检查是否安装下列库:zlib.zlib-devel.openssl.openssl-devel.prce.prce-devel如果没有,则全部装上# yum install zlib zlib-devel openssl openssl-devel prce prce-devel2.安装pcre# wget ftp://ftp.csx.cam.ac.uk/pub/software/progr

linux运维实用的42个常用命令总结

1.删除0字节文件 代码如下: find -type f -size 0 -exec rm -rf {} \; 2.查看进程按内存从大到小排列 代码如下: ps -e -o "%C : %p : %z : %a"|sort -k5 -nr 3.按cpu利用率从大到小排列 代码如下: ps -e -o "%C : %p : %z : %a"|sort -nr 4.打印说cache里的URL 代码如下: grep -r -a jpg /data/cache/* | st

不看绝对后悔的Linux三剑客之sed实战精讲

二.Linux三剑客之sed命令精讲 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件等等.如果我们相对这些文件进行一些编辑查询等操作时,我们可能会想到一些vi,vim,cat,more等命令.但是这些命令效率不高,这就好比一块空地准备搭建房子,请了10个师傅拿着铁锹挖地基,花了一个月的时间才挖完,而另外一块空地则请了个挖土机,三下五除二就搞定了,这就是效率.而在linux中的"挖土机"有三种型号:顶配awk,中配sed,标配grep.使用这些工具,我们

Linux文本处理“三剑客”之sed

sed(Stream Editor)是一个行编辑工具.下面我们介绍 sed 的实现原理和基本使用方法. 一.sed 的处理文本的流程 基本处理流程如下: 处理流程是:每次读入文本文件的一行到内存中的模式空间中,在模式空间中处理后将处理的结果输出,默认会打印到屏幕上.因此,默认情况下,不会改变原文件的内容. 二.sed 命令的使用 基本语法:sed [options]... '地址定位 编辑命令' FILE... 地址定位的方法: 1.行定位: start_line[,end_line] 2.模式