linux三剑客之sed命令,linux三剑客之sed命令

sed是一个非交互式的文件编辑器,可以对文本文件和标准输入进行编辑,标准输入可以来自键盘输入、字符串、文件重定向、管道、变量等。

sed命令选项及其含义

选项含义

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

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

-f表示正在调用脚本文件

sed命令通常由定位文本行以及编辑命令组成,编辑命令对定位文本行进行各种处理

sed命令定位文本的方法

选项含义

x指定行号

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

/a/查询包含a的行

/a/b/查询包含a、b的行

/a/,b从与a匹配的行到b行号之间的行

a,/b/从a行号到匹配到b行之间的行

a,b!查询不包含a行号和b行号行之外的行

sed编辑命令选项及其含义

选项含义

p打印匹配行

=打印文件行号

a\在定位行号之后追加文本信息

i\在定位行号之前插入文本信息

d删除定位行

c\用新文本替换定位文本

s使用替换模式替换相应模式

r从另一个文件中读取文本

w将文本写入到一个文件

y变换字符

q第一个模式匹配完成后退出

{}在定位行执行命令组

n读取下一个输入行,用下一个命令处理新的行

h将模式缓冲区的文本复制到保持缓冲区

H将模式缓冲区的文本追加到保持缓冲区

x互换模式缓冲区和保持缓冲区内容

g将保持缓冲区的文本复制到模式缓冲区

G将保持缓冲区的文本追加到模式缓冲区

l显示与八进制ASCII码等价的控制字符

举例如下:

现在有一个文件,文件内容如下:

linux三剑客之sed命令,linux三剑客之sed命令_第1张图片

1.sed命令的-n选项:

-p命令表示打印匹配行,如果要打印文件的第一行,可以通过命令如下:

linux三剑客之sed命令,linux三剑客之sed命令_第2张图片

如果不加-n选项可以看到地一行打印出来后,接下来的行都被打印出来,因此可以理解为-n选项是不打印文件的全部内容,但是可以选择性的进行打印,如图:

linux三剑客之sed命令,linux三剑客之sed命令_第3张图片

如果要打印文件的3到6行,可以执行命令如下:

linux三剑客之sed命令,linux三剑客之sed命令_第4张图片

如果要打印匹配Centers的行,注意,匹配是区分大小写的,如果输入centers是无法打印出来的,可以执行的命令如下:

你可能感兴趣的:(linux三剑客之sed命令)