sed:linux常用工具

参考文章:http://www.thegeekstuff.com


sed工作原理

This is called as one execution cycle. Cycle continues till end of file/input is reached:

1. Read a entire line from stdin/file.

2. Removes any trailing newline.

3. Places the line, in its pattern buffer.

4. Modify the pattern buffer according to the supplied commands.

5. Print the pattern buffer to stdout.


命令的格式:

ADDRESS(行号):

n : 匹配第几行

m,n : 从m到n行

m~n :从m行开始,每隔n行

‘$‘ : 最后一行

PATTERN(字符串):

/sometext/ : 匹配有sometext字符串的行


sed -n ‘ADDRESS‘p filename  // print, e.g: sed -n ‘4‘p text.txt。 ‘ADDRESSp‘,即将p放在单引号中也是可以的,或者将单引号换成双引号"ADDRESSp"也是一样,下同。
sed -n ‘/PATTERN/p‘ filename    // e.g: sed -n ‘/aa/p‘ text.txt

sed -n ‘ADDRESS‘d filename  //delete,不会删除文件中的内容,只是在标准输出中删除该行。
sed -n ‘/PATTERN/d‘ filename

sed ‘ADDRESS a    some text‘  filename    //append,在匹配行的下一行添加"some text",注意单引号
sed ‘/PATTERN/ a    some text‘ filename

sed ‘ADDRESS i    some text‘ filename    // insert,在匹配行前插入一行
sed ‘/PATTERN/ i    some text‘ filename

sed ‘ADDRESS c    some text‘ filename    // 替换匹配行
sed ‘PATTERN c    some text‘ filename

sed -n ‘ADDRESS‘= filename  //打印匹配的行号, 只接受一个地址,如果打印多行使用{}括起来,如下
sed -n ‘ADDRESS,/PATTERN/ {
=
p
}‘ filename

sed 正则表达式查找和替换

‘s‘ 命令应该是sed中最重要的命令,语法如下:

sed ‘ADDRESSs/REGEXP/REPLACEMENT/FLAGS‘ filename
sed ‘PATTERNs/REGEXP/REPLACEMENT/FLAGS‘ filename

例子:

sed ‘1s/aa/bb/‘ text.txt        //用bb替换aa,只在aa第一次出现的地方进行替换
sed ‘2s/aa/bb/‘ text.txt    //用bb替换aa,只在aa第二次出现的地方进行替换
sed ‘s/aa/bb/g‘ text.txt    //用bb替换aa,g(global )是全局替换的意思。不加g默认也是全局替换。
sed -n ‘s/aa/bb/gpw result.txt‘ text.txt    //g全局替换,p打印,w将替换结果写到result.txt文件中

sed ‘s/...$//‘ text.txt        //正则表达式匹配:将最后位置的前三个字符替换为空,即删除每行的最后三个字符。

执行多条sed命令

sed -e: use multiple -e options to build up a script out of many parts。

-e option is optional for sed with single command. sed will execute the each set of command while processing input from the pattern buffer

-e script, --expression=script

    add the script to the commands to be executed

例子:

sed -e ‘s/foo/bar/‘ -e ‘/FOO/d‘

解释:先用bar替换foo,然后再删除有字符串FOO的行

时间: 2024-11-08 21:36:26

sed:linux常用工具的相关文章

Linux常用工具安装

1 Linux常用开发工具安装 1 安装Mysql ①基本安装 wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm: sudo rpm -ivh mysql57-community-release-el7-10.noarch.rpm : yum -y install mysql-server: service mysqld restart: ②设置密码,基本安装完成后root账号是没有密码的,我们可以给ro

【linux 常用工具总结】sed 工具使用总结

在日常工作中,我们往往会在使用Unix/Linux系统时遇到一些处理复杂文本的情况, 这些文本直接处理可能会比较麻烦,往往会花费我们很多时间,给我们的工作带来一定的困扰.事实上,Unix/linux系统提供了一些强大高效的文本处理工具来帮助我们进行复杂文本的处理, 掌握这些工具的使用可以事半功倍. 本文主要对linux三剑客(sed, awk, grep)之一的sed工具进行介绍,并对该工具的使用进行简单的说明. 1.1  sed工具使用总结 sed, 全称 stream editor, 是一种

Linux常用工具之XFTP、Xshell配置

Xftp是一个基于 MS windows 平台的功能强大的SFTP.FTP文件传输软件.使用了 Xftp 以后,MS windows 用户能安全地在UNIX/Linux 和 Windows PC 之间传输文件.-------摘自度娘~ 其实Xftp就是一款PC对虚拟机的上传.下载传输的工具,例如,在虚拟机搭建tomcat环境,搭建禅道等,都需要借助这款工具. Xftp和Xshell是可以配套使用的,所以小七这边把2款工具结合到一起介绍使用. Xftp xftp左边红框对应显示的是PC端的文件,右

Linux常用工具介绍——free

在Linux系统中,我们查看.监控系统内存使用情况,一般最常用的命令就是free, 关于free的实现,其实是调用linux下的/proc/meminfo文件.[[email protected] /]# free -Vfree from procps-ng 3.3.9 [[email protected] /]# free              total       used       free     shared    buffers     cachedMem:       10

Linux常用工具集锦

vnc-win32 VNC (Virtual Network Computer)是虚拟网络计算机的缩写.VNC 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的.VNC 是在基于 UNIX 和 Linux 操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和 Windows 和 MAC 中的任何远程控制软件媲美. 在 Linux 中,VNC 包括以下四个命令:vncserver,vncviewer,vncpasswd,和 vncconnect.大多数情况下用

linux 常用工具记录及简介

前言 linuxz虽然各种软件的生态还比较差,但是大势所趋,早晚都是要用的.记录下自己常用的软件,要是那天系统崩了重装也舒服点 编程工具 pycharm专业版(社区版也能用,只是用惯了专业版) * 下载安装包(2018.2版3.1可破解):https://www.jetbrains.com/pycharm/download/ * 破解:将jar文件放入bin文件夹下,在pycharm.vmoptions和pycharm64.vmoptions中最后面加入(jar文件路径) -javaagent:

linux常用工具集合

1.前言 本文收集或记录工作过程中用到的工具,方便自己,分享予有缘人. 2.测试环境 CentOS release 6.5 (Final) 3.工具介绍 3.1.tcpdump 3.1.1.作用 监听某个端口并抓包 3.1.2.安装 yum -y install tcpdump 3.1.3.使用范例 tcpdump port 21 -nA 3.2.nmap 3.2.1.作用 扫描某台主机开启的服务端口 3.2.2.安装 yum -y install nmap 3.2.3.使用范例 nmap ww

linux常用工具

对不错的工具记录一下,不然明天又忘记啦 1. tee 功能说明:读取标准输入的数据,并将其内容输出成文件, 语 法:tee [-ai][--help][--version][文件...]补充说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件 来源:http://liubin.blog.51cto.com/282313/131298

Linux常用工具与菠菜平台出售

VIM:菠菜平台出售Q217-179-3408Vim是从 vi 发展出来的一个著名的功能强大.高度可定制的Linux文本编辑器12种模式:6种基本模式,6种条件模式进入文本编辑器语法: vim [文件名] 1①普通模式->插入模式 i进入插入模式 光标在当前位置I进入插入模式 光标到行首a光标移动到下一个字符处开始插入A 光标移到行尾开始插入o在光标所在行下方添加新行并进入插入模式O在光标所在行上方添加新行并进入插入模式s删除光标所在字母并进行插入插入模式->普通模式Esc键②普通模式下的操作