sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法
sed命令行格式为:
sed [-nefri] ‘command’ 输入文本
一.常用选项
-n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-e∶直接在指令列模式上进行 sed 的动作编辑;
-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)
1.删除某行
[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 #删除第二行到最后一行
2.显示某行
[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 #显示第二行到最后一行
3.使用模式进行查询
[root@localhost ruby] # sed -n '/ruby/p' ab #查询包括关键字ruby所在所有行 [root@localhost ruby] # sed -n '/\$/p' ab #查询包括关键字$所在所有行,使用反斜线\屏蔽特殊含义
4.增加一行或多行字符串
[root@localhost ruby]# cat ab Hello! ruby is me,welcome to my blog. end [root@localhost ruby] # sed '1a drink tea' ab #第一行后增加字符串"drink tea" Hello! drink tea ruby is me,welcome to my blog. end [root@localhost ruby] # sed '1,3a drink tea' ab #第一行到第三行后增加字符串"drink tea" Hello! drink tea ruby is me,welcome to my blog. drink tea end 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. end
5.代替一行或多行
[root@localhost ruby] # sed '1c Hi' ab #第一行代替为Hi Hi ruby is me,welcome to my blog. end [root@localhost ruby] # sed '1,2c Hi' ab #第一行到第二行代替为Hi Hi end
6.替换一行中的某部分
格式: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
7.插入
[root@localhost ruby] # sed -i '$a bye' ab #在文件ab中最后一行直接输入"bye" [root@localhost ruby]# cat ab Hello! ruby is me,welcome to my blog. end bye
8.删除匹配行
sed -i '/匹配字符串/d' filename (注:若匹配字符串是变量,则需要“”,而不是‘’。记得好像是)
9.替换匹配行中的某个字符串
sed -i '/匹配字符串/s/替换源字符串/替换目标字符串/g' filename
文章来源:http://www.cnblogs.com/dong008259/archive/2011/12/07/2279897.html
相关推荐
在Linux系统中,`sed`(流编辑器Stream Editor)是一个强大的文本处理工具,它能够对输入流(标准输入或指定文件)进行实时编辑,并将处理结果输出到标准输出或重定向到其他文件。在软件开发、系统管理以及日常文本...
本文将详细解读sed命令在Linux环境下的用法,包括其基本语法以及常见用例。 首先,sed命令的基本语法格式为: ``` sed [选项] '脚本' [文件] ``` 其中,选项部分可以用于控制sed的行为,例如-i选项可以用于直接...
主要介绍一下linux中sed的用法;和上一个awk设计得一样;
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法
Linux下的`sed`是一个强大的流编辑器,它允许用户对文本文件进行非交互式的操作,如替换、删除、插入等。`sed`的工作原理是逐行处理输入文件,每读入一行,它会先将其存储在模式空间中,然后根据用户指定的命令对...
本文将详细介绍`sed`命令的基本用法及常用参数。 #### 基本语法 `sed`的基本语法格式为: ```bash sed [选项] '命令' 文件名 ``` 其中,“命令”可以包含一系列文本处理指令。 #### 参数详解 1. **`-e` 或 `--...
总之,"sed用法实例指导DOC版"文档是学习和提升sed技能的宝贵资源,无论你是Linux新手还是经验丰富的系统管理员,都能从中受益。通过阅读和实践文档中的例子,你将能够熟练掌握这一强大的文本处理工具,提高在文本...
linux shell命令sed的使用方法
将介绍执行命令列上的编辑指令 、sed 编辑指令、执行档案内的编辑指令、执行多个档案的编辑、及 执行 sed 输出控制。
在Linux系统中,awk、cut、sort和sed是四个非常重要的命令行工具,它们用于文本处理和数据操作。这些工具在日常的系统管理和数据...对于Linux系统管理员和开发者来说,熟悉awk、cut、sort和sed的使用是必备技能之一。
- `s/pattern/replacement/flags`: 这是 sed 最常用的操作之一,用于替换文本中的匹配项。 - `pattern`: 需要被替换的模式或字符串。 - `replacement`: 替换后的文本。 - `flags`: 可选标志,如 `g` 表示全局...
下面我们将深入探讨sed命令的用法。 1. **打印特定行** - `sed -n '2'p filename`: 打印文件`filename`的第二行。 - `sed -n '1,3'p filename`: 打印文件`filename`的第一到第三行。 - `sed -n '/Neave/'p ...
Linux是开源的操作系统,其命令行工具和shell脚本编程是进行系统管理和应用程序开发的基础。在Linux中,shell脚本可以实现自动化任务,提高工作效率。本文将深入探讨Linux的常用命令、shell语法、gcc和gdb编译器的...
### Linux Sed 命令详解 #### 概述 ...通过上述示例可以看出,`sed`提供了非常灵活且强大的文本处理能力,是进行文本数据处理和分析的利器之一。掌握其基本用法可以帮助用户高效地完成各种文本处理任务。
替换操作是sed最常用的功能之一,通常使用`s`命令来完成。例如: ```bash sed -e 's/oldstring/newstring/g' 文件名 ``` 这会将文件中所有出现的`oldstring`替换为`newstring`,`g`标志表示全局替换,即替换每一行中...
Linux三剑客之sed命令:自己在平时的使用过程中总结积累的sed命令的若干种常用用法,特分享出来。 参数: -i 表示inplace edit,就地修改文件 -r 表示搜索子目录 -l 表示输出匹配的文件名 s 表示替换,d 表示删除...
在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。-e∶直接在指令列模式上进行 sed 的动作编辑;-f∶直接将 sed ...