sed命令

阅读数:122 评论数:0

跳转到新版页面

分类

Linux

正文

一、概述

sed是一个流文件处理器,sed命令可以对文本文件进行进行替换、删除、新增、选取等,支持按行、按字段、按正则表达式匹配文本内容,特别适合于大文件的编辑,sed本身也是一个管道命令 。

二、语法 

1、sed命令的两种语法

(1)在命令行指定sed指令对文本进行处理:

sed 选项  '动作' 文件

中括号内容必有,大括号内容可有可无。

(2)先将sed指令保存到文件中,将该文件作为参数进行调用

sed 选项  -f 包含sed指令的文件

2、sed选项

-e 多次编辑,只有使用多个sed指令时才需要使用-e选项
-f 后跟保存了sed指令的文件
-i 直接对内容进行修改,不加-i时默认只是预览,不会对文件做实际修改
-n 使用安静模式,即只有经过sed特殊处理的那一行才被输出到屏幕
-r 支持正则表达式
-i.bak 备份文件并原处编辑

3、sed动作

[n1 [,n2] ] function
#n1,n2:代表选择行范围

(1)function

a 新增,a的事面接字符串,新字符串添加到当前行的下一行
c 更改
d 删除
i 插入,在当前行的上一行
s 替换
p 打印

4、特殊字符集

^ 行的开始, /^sed/表示匹配以sed开头的行
$ 行的结束,/sed$/表示匹配以sed结尾的行
. 匹配一个非换行符,/s.d/匹配s后接一个任意字符,然后是d
* 匹配零或多个字符/*sed/
[abc] 匹配一个指定范围内的字符/[Ss]ed/匹配sed和Sed
[^a-A] 匹配一个不在指定范围内的字符/[^A-RT-Z]ed/匹配不包含A-R和T-Z的一个字母开头,紧跟ed的行
a{1,3} 重复字符,如/0\{5\}/匹配包含5个0的行,/0\{5,\}/匹配至少有5个0的行,/0\{5,10\}/匹配5-10个0的行
   

三、常用方式

1、替换

(1)只替换行中的第一个串

sed 's/foo/bar/' test.txt

(2)只替换行中的某个串

#只替换每一行中的第四个foo字串
sed 's/foo/bar/4'  test.txt 

(3)替换行中所有串

sed 's/foo/bar/g' test.txt

(4)替换指定范围行内的所有串

sed '1,20s/old/new/g' test.txt

2、删除

(1)将匹配的内容进行删除

sed -i '/test/d' test.txt

(2)删除指定的行

# 删除第3行
sed -i '3d' test.txt

(3)删除多行

# 删除1至10行
sed -i '1,10d' test.txt

(4)删除最后一行

sed -i '$d' test.txt

(5)删除第一行

sed -i '^d' test.txt

(6)删除除1~2以外的其他行

sed -i '1,2!d' test.txt

(7)删除空行

sed -i '/^$/d' test.txt

(8)删除从匹配行到最后一行

sed  '/123/,$d ' test.txt

3、追加

(1)在指定行后增加一行

# 在第2号后追加
sed -i '2a\test'    test.txt

(2)在文末新增一行

sed -i '$ a\aaaa' test.txt



相关推荐

一、概述 1、为什么Linus不使用GPLv3 在 PC 上,只要你得到了某个程序的源代码,就可以自行编译生成二进制程序,然后替换掉原有的二进制程序,你的程序自由很容易得到保证。然而 iPod、iPh

说明:这种方式只是用于方便阅读代码,因为可以在源代间快速索引跳跃。但是最后可能会有一些warning,可以不必关心,如果是强迫症,可以使用下面这种方式来去掉。

一、概述 在Linux系统中,/usr/bin和/usr/local/bin是两个常见的目录,用于存放可执行文件(二进制文件)。 很多应用都安装在/usr/local下面,先看一下automake工具

  一、概述 vmstat命令是最常见的Linux/Unix监控工具,可以监控给定时间间隔服务器的CPU使用率、内存使用、IO情况。相比top命令,可以查看到整个机器的CPU、内存、IO的使用情况,而

一、概述 sar,System Activity Reporter。是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁

一、简介 简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 二、使用方法 1、基本语法  awk '条件类型1 {动作1} 条件类型2{动作2} ...

一、概述 列出目标目录中所有的子目录和文件。 二、 语法 ls [选项] [目录名] -a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件 -A 同-a,但不列出“.”(表示当前目录)

一、概述 cd全称是change directory,用于切换当前工作目录。 注意的是,cd命令是一个内建命令,它是由 shell 提供的。因此,不同的 shell 可能会有一些差异,但基本的用法和功

一、概述 全称为print working directory,查看”当前工作目录“的完整路径,一般情况下不带任何参数 二、语法 pwd [选项] -L 即logical,逻辑路径 -P 即

一、概述 通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹或目录。要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限。并且,所创建的文件夹(目录