Linux系统上的文本处理工具之sed

sed命令

sed是一种在线编辑器、行编辑器,一次处理一行内容,在处理时,把当前处理的行存储在临时缓冲区当中,该缓冲区称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完毕后,把缓冲区的内容送到标准输出;然后紧接着去处理下一行,重复完成相同的操作,直至文件结尾;sed处理的整个过程中,对象文件中的内容并没有改变,除非使用重定向来存储处理后的结果。sed主要用来自动编辑一个或多个文件,简化对文件的反复操作过程。

sed跟我们之前讲过的文本处理工具vim,grep是有区别的,vim是一种交互式的文本编辑工具,而sed是一种非交互式的文本编辑器(通过给定的条件自动的逐行去处理文件);grep虽然也是一种流行的文本处理工具,但grep是用来检索条件关键字的,而sed是搜索匹配处理文本工具。

sed所具有的功能有:数据的替换,删除,新增等,这里的数据可以是一些关键字,也可以是一些特定的行。sed的功能是相当丰富的。

sed

sed [OPTION]... ‘script‘ [input-file]...

script:

地址定界编辑命令

常用选项:

-n:不输出模式空间中的内容至屏幕;

-e script, --expression=script:多点编辑;

-f /PATH/TO/SED_SCRIPT_FILE

每行一个编辑命令;

-r,--regexp-extenden:支持使用扩展正则表达式;

-i[AUFFIX],--in-place[=SUFFIX]:直接编辑原文件;

地址定界:

1)空地址:对全文进行处理

2)单地址:

#:指定行;

/pattern/:被词模式所匹配到的每一行;

3)地址范围;

#,#;

#,+#;

#,/pat1/

/pat1/,/pat2/

4)步进;~

1-2:所有奇数行

2-2:所有偶数行

编辑命令:

d:删除

p:显示模式空间中的内容

a\text:在行后面追加文本“text”,支持使用\n实现多行追加

i\text:在行后面插入文本“text”,支持使用\n实现多行插入

c\text:把匹配到的行替换为此处指定的文本"text"

高级编辑命令:

h:把模式空间中的内容覆盖至保持空间中;

H:把模式空间中的内容追加至保持空间中;

g:把保持空间中的内容覆盖至模式空间中;

G:把保持空间中的内容追加至模式空间中;

x:把模式空间中的内容与保持空间中的内容互换;

n:覆盖读取匹配到的行的下一行至模式空间中;

N:追加读取匹配到的行的下一行至模式空间中;

d:删除模式空间中的行;

D:删除多行模式空间中的所有行;

示例:

sed -n ‘n;p‘ FILE :显示偶数行

sed ‘1!G;h;$!d‘ FILE:逆序显示文件的内容

sed ‘$!d‘ FILE:取出最后一行

sed ‘$!N;$!D‘ FILE:取出文件后两行

sed ‘/^$/d;G‘ FILE:删除原有的所有空白行,而后为所有的非空白行后添加一个空白行;

sed ‘n;d‘ FILE:显示奇数行

sed ‘G‘ FILE:在原有的每行后方添加一个空白行;

时间: 2024-10-21 02:58:21

Linux系统上的文本处理工具之sed的相关文章

Linux系统上的文本处理工具

Linux系统上的文件处理工具 我们都知道在计算机中,存在大量的文件,这些文件中包含大量的信息.可是有些时候,为了工作的效率,我们在茫茫信息中提取出我们所需要的信息,这样的技能就显得尤为重要.Linux系统上为我我们提供了多种多样的文本处理工具,下面我们来简单说一下. 查看文件内容我们可以使用less命令,cat命令,more命令等等 cat cat [OPTION]... [FILE]... -E: 显示行结束符$ -n: 对显示出的每一行进行编号 -A:显示所有控制符 -b:非空行编号 -s

Linux系统上的文本处理工具练习题

1.显示/proc/meminfo文件中以大小s开头的行:(要求:使用两种方式) 2.显示/etc/passwd文件中不以/bin/bash结尾的行 3.显示用户rpc默认的shell程序 4.找出/etc/passwd中的两位或三位数 5.显示/etc/grub2.cfg文件中,至少以一个空白字符开头的且后面存非空白字符的行 6.找出"netstat -tan"命令的结果中以'LISTEN'后跟0.1或多个空白字符结尾的行 7.添加用户bash.testbash.basher以及no

Linux系统中的文本处理工具

在大家刚接触Linux操作系统,首先都会让你了解linux的哲学思想:一切皆文件:那么今天就带大家认识linux中的一些文本查看工具. 1.cat和tac 连接文件并在标准输出上打印:其中cat是正向显示:tac是倒着显示 格式:cat [  options ]... [ FILE ]... 选项: -E filename 能看到行的结束符 -A filename 能看到tab键 回车 -n filename 加行号 -s filename 压缩空行(连续相邻的空行) -b 加行号,但空行不加 

Linux系统上的vim编辑器

vim编辑器作为Linux系统上的文本处理工具三剑客之一,被广大运维小伙伴所喜爱,马哥称之为"尤物"的编辑器.下面简单介绍一下vim编辑器. 文本编辑器: 文本:纯文本,ASCII text: 文本编辑种类: 行编辑器:所谓行编辑器是指一行一行来处理的工具,如sed 全屏编辑器:编辑空间占据整个屏幕,如nano,vi vi:Visual Interface vim:Vi IMproved,是vi的增强版,vim是模块化的编辑 其他编辑器: gedit:一个简单的图片编辑器 gvim:一

如何实现在虚拟机上的Linux系统上安装vmware tools

如何实现在虚拟机上的Linux系统上安装vmware tools工具 作者:何扬   时间:2017年9月23日  上午8:29:16 [安装目的]Linux下需要安装VMware Tools工具来实现主机和虚拟机直接文件复制粘贴功能. [基本流程] 1.首先,打开虚拟机,进入Linux系统登录界面,请以以root用户登入系统. 2.点击虚拟机VM菜单栏--虚拟机--安装VMware Tools,如图A-1所示(作者这里显示的是"重新安装VMware Tools",是因为作者之前已经安

Linux系统上的特殊权限SUID,SGID,STICKY以及额外权限管理工具facl命令

Linux系统上的特殊权限 特殊权限:SUID, SGID, STICKY 安全上下文: 1.进程以某用户的身份运行:进程是发起此进程用户的代理,因此以此用户的身份和权限完成所有操作: 2.权限匹配模型: (1) 判断进程的属主,是否为被访问的文件属主:如果是,则应用属主的权限:否则进入第2步: (2) 判断进程的属主,是否属于被访问的文件属组:如果是,则应用属组的权限:否则进入第3步: (3) 应用other的权限: SUID: 默认情况下:用户发起的进程,进程的属主是其发起者:因此,其以发起

在 Linux 系统上源码安装 GTK+ 2.0

在 Linux 系统上源码安装 GTK+ 2.0==================================================Keywords: GTK+, Install, Linux, SourceAuthor:       whyglinux (whyglinux AT hotmail DOT com)Date:          2007-01-07==================================================目录0. 前言1.

Linux系统 vi/vim文本编辑器

Linux系统 vi/vim文本编辑器 (一)Vim/Vi简介 (二)Vim/Vi工作模式 (三)Vim/Vi基本使用 (四)Vim/Vi应用技巧 (一)Vim/Vi简介 Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器,它的作用是建立.编辑.显示文本文件.vim或者vi文本编辑是Linux下最常用的编辑器.vi 和vim 编辑器的区别是vim是vi的改进版本,在vi 编辑器的基础上上扩展了很多实用的功能. 大多数的linux/unix 发行版本中都使用

linux系统上安装paramiko模块

Linux系统上安装paramiko模块要求python要是2.7以上的,所以在安装模块之前应该安装python2.7(这里的安装过程略去) 在安装setuptools的时候突然报错了,RuntimeError:Compression requires the (missing) zlib module原因是因为没有安装zilb和zlib-devel包. yum install zlib yum installzlib-devel 安装完成后,重新编译 python2.7[不需要删除,只需要重新