添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法

sed命令行格式为:

sed [-nefri] ‘command’ 输入文本

常用选项:

-n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。

-e∶直接在指令列模式上进行 sed 的动作编辑www.it165.net;

-f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;

-r∶sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法)

-i∶直接修改读取的档案内容,而不是由萤幕输出。

常用命令:

a   ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~

c   ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!

d   ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚;

i   ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);

p  ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~

s  ∶取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

举例:(假设我们有一文件名为ab)

[root@localhost ruby] # sed ’1d’ ab              #删除第一行

[root@localhost ruby] # sed ‘$d’ ab              #删除最后一行

[root@localhost ruby] # sed ’1,2d’ ab           #删除第一行到第二行

[root@localhost ruby] # sed ’2,$d’ ab           #删除第二行到最后一行

.    [root@localhost ruby] # sed -n ’1p’ ab           #显示第一行

[root@localhost ruby] # sed -n ‘$p’ ab           #显示最后一行

[root@localhost ruby] # sed -n ’1,2p’ ab        #显示第一行到第二行

[root@localhost ruby] # sed -n ’2,$p’ ab        #显示第二行到最后一行

使用模式进行查询

[root@localhost ruby] # sed -n ‘/ruby/p’ ab    #查询包括关键字ruby所在所有行

[root@localhost ruby] # sed -n ‘/\$/p’ ab        #查询包括关键字$所在所有行,使用反斜线\屏蔽特殊含义

增加一行或多行字符串

[root@localhost ruby]# cat ab

Hello!

ruby is me,welcome to my blog.

[root@localhost ruby] # sed ’1a drink tea’ ab  #第一行后增加字符串”drink tea”

Hello!

drink tea

ruby is me,welcome to my blog.

[root@localhost ruby] # sed ’1,3a drink tea’ ab #第一行到第三行后增加字符串”drink tea”

Hello!

drink tea

ruby is me,welcome to my blog.

drink tea

drink tea

[root@localhost ruby] # sed ’1a drink tea\nor coffee’ ab   #第一行后增加多行,使用换行符\n

Hello!

drink tea

or coffee

ruby is me,welcome to my blog.

代替一行或多行

[root@localhost ruby] # sed ’1c Hi’ ab                #第一行代替为Hi

ruby is me,welcome to my blog.

[root@localhost ruby] # sed ’1,2c Hi’ ab             #第一行到第二行代替为Hi

替换一行中的某部分

格式:sed ‘s/要替换的字符串/新的字符串/g’   (要替换的字符串可以用正则表达式)

[root@localhost ruby] # sed -n ‘/ruby/p’ ab | sed ‘s/ruby/bird/g’    #替换ruby为bird

[root@localhost ruby] # sed -n ‘/ruby/p’ ab | sed ‘s/ruby//g’        #删除ruby 插入

[root@localhost ruby] # sed -i ‘$a bye’ ab         #在文件ab中最后一行直接输入”bye”

[root@localhost ruby]# cat ab

Hello!

ruby is me,welcome to my blog.

sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法sed命令行格式为:sed [-nefri] ‘command’ 输入文本常用选项:-n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处...
Linux 流编辑器是在 数据 运行脚本的一种有用方法。通过这些 命令 示例,您可以开始熟悉 sed 。 想要修改文件而不覆盖原始文件的 Linux 管理员有很多选择,但最有效的工具之一是流编辑器 – sed 。 流编辑器是大多数 Linux 发行版的默认部分。它使您能够 使用 Linux sed 命令 在操作系统 执行文本文件操作。 与大多数 Linux 应用程序一样, sed 可以处理 管道 输入,这使它成为一种有效的脚本工具。您可以将其用作基本的查找和替换工具,如下面的示例 命令 所示,该 命令 查找出现的一个实例,并将其替换为两个实例。 命令 以 /g结束。 sed 's/one/two/g' linux idc linux mi 1.在 命令 行定义编辑器 命令 (直接将 数据 通过 管道 输入 sed 编辑器处理) echo “this is a test” | sed 's/test/big test/' 输出:this ia a big test 2.在 命令 使用 多个编辑器 命令 sed -e sed -e ‘ ’ ;‘ ’ script file 3.从文件 读取编辑器指令 sed -f file 。将file 指定的 命令 天添加到...
-n 使用 silent安静模式, sed 一般会将所有 数据 输出, 使用 -n,只输出 sed 有修改的行。 -e 直接在 命令 行模式上进行 sed 操作 -f 将 sed 的动作写入文件, -f filename 从文件 读取动作。 -r 使用 扩展正则表达式,默认为基础正则表达式 -i 直接修改文件内容,而不是屏幕输出。 Linux 提供 管道 符 “|”将两个 命令 隔开, 管道 符左边 命令 的输出就会作为 管道 符右边 命令 的输入 # 示例: echo "hello world"|grep 'hello' 正则,什么是正则? 正则表达式就是记录文本规则的代码 常用的元字符
sed Linux 系统 最为广泛 使用 命令 行编辑器, sed 本身也是一个 管道 命令 ,可将 数据 进行替换/删除/新增/选取等功能。 sed 命令 的执行过程大致如下: 1)一次从输入 读取一行 数据 ;2)根据所提供的编辑器 命令 匹配 数据 ;3)按照 命令 修改流 数据 ;4)将新的 数据 输出到STDOUT sed 命令 格式如下: [root@centos7-magedu ~]# sed [-n...
filter:Example : cat grep sort wc $ wc < file # standard input replaced by file $ wc file # arguments format [一般 命令 ] | [filter指令] | [filter指令] 若第二个及之后的 命令 非filter指令,则需要用xargs。 $ echo test* | xargs ls等价于$ ls test* $ cat 30.sh | xargs # 多行输入单行输出 sed sed '/pattern/ s/old_text/new_text/g' filename 这个 命令 将只对文件filename 匹配pattern的行进行old_text到new_text的替换操作。 这些是 sed 的一些基本 用法 ,还有许多其他的 用法 可以根据需要进行学习和 使用