文本编辑命令——sed

sed命令作为一种流编辑器,以行为单位对一个或多个文件进行编辑,在sed处理文本时,会将文本放到一个模式空间当中,如果当前行能够匹配sed命令所给出的PATTERN则用命令进行处理,如果不能匹配则默认情况下标准输出;文件内容默认情况下不会改变;

sed命令:

sed [OPTION]...‘script’  [input-file]...

常用选项:

-n:安静模式,默认不匹配的行不输出到屏幕上;

-e script:多条件输出,一个e选项可以配合一个script;

-i:将修改的内容直接写进原文件;

-r:支持扩展的正则表达式;

script由两部分组成:Address与Command两者之间不能有空格存在;即AddressCommand;

Address:

1.当地值为空时则表示对当前所有文件进行操作;

2.单地址,指定行号num时,只对当前行进行操作,或者/PATTERN/指能够匹配该模式的第一行,对该行进行操作;

3.地址范围:

①addr1,addr2:从addr1开始到addr2结束的中间所有行,包括addr1和addr2;

②first~step:由标记first开始到step为止;

③add1,+N:由add1行开始,并计算向后N行;

④addr1,~N:从addr1开始,包括addr1所在行,向后计算addr1*N行;

例如:2,~5相当于2,2*5

⑤/PATTERN1/,/PATTERN2/

从被pattern1匹配的第一行开始计算,一直到被pattern2匹配的第一行结束;

Command:

=:先是被模式匹配行的行号;

a \test:在所匹配行的下一行添加test文本,支持使用\n选项;

i \test:在所匹配行的上一行添加test文本,支持使用\n选项;

c \test:将所匹配行用test进行替换,支持使用\n选项;

d:将在模式空间中匹配的行删除,不在显示输出,d选项通常不搭配-n选项;

p:将在模式空间匹配的行输出,p选项通常搭配-n选项;

w filepath:被能够匹配的行另存到一个文件里去;

r filepath:将filepath中的内容追加到模式空间中被模式匹配的行之后;

!COMMAND:在模式空间中匹配的行不输出,不匹配的行输出;

s///:查找替换,“/”可以随意分配三个一模一样的符号,视情况而定;

s/pattern/text/[control]

pattern:计划查找并替换内容;

text:要替换的结果

control:如何进行替换;

g:行内全部替换;

p:显示替换成功的行;

[email protected]/etc/[email protected]/etc/[email protected]:将字符/etc/fstab替换为/etc/mtab;

sed命令示范:

加-n与不加-n:采用指定单地址的方式

-e:

-r:取出当前路径的基名,用基民替换当前路径

-i:将修改写入文件;

采用多地址方式:add1,add2

add1,+N

/PATTERN/,/PATTERN/匹配:

p:将在模式空间匹配的行输出;加-n与不加-n;

d:删除模式空间匹配的行;d选项的使用不加-n;

w file:将模式匹配的内容保存到另一个文件当中;

s///:查找替换,将文件中开头为#且后面有空格的匹配字符删去;

时间: 2024-10-02 11:19:38

文本编辑命令——sed的相关文章

Linux 常用命令sed/awk/grep及正则表达式

linux命令sed和awk sed 主要功能 sed,stream editor.是一个"非交互式"字符流编辑器.输入流通过程序并输出到标准输出端. sed主要用来自动编辑一个或者多个文件(替换,插入,删除,追加,更改) 常见应用 抽区域 匹配正则表达式 比较域 增加,附加,替换 执行过程 sed一次处理一行或多行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区

linux下的文本处理命令sed&awk&grep

Sedsed 是个精简的.非交互式的编辑器.他能执行和编辑vi和emacs相同的编辑任务.sed编辑器不提供交互使用方式:只能在命令行输入编辑命令.指定文件名,然后在屏幕上察看输出.sed编辑器没有破坏性.他不会修改文件,除非用shell重定向来保存输出结果.缺省情况下,所以的输出都被打印到屏幕上.sed 编辑器在shell脚本中非常有用,因为在shell脚本中使用像vi或emacs这类交互式编辑器,需求脚本用户精通该编辑器,而且还会导致用户对打开 的 文件做出不必的修改.如果需要执行多项编辑任

Linux的文本编辑diff & sed & awk & grep

grep(关键字: 截取) 文本搜集工具, 结合正则表达式非常强大    主要参数 []    -c : 只输出匹配的行    -I : 不区分大小写    -h : 查询多文件时不显示文件名    -l : 查询多文件时, 只输出包含匹配字符的文件名    -n : 显示匹配的行号及行    -v : 显示不包含匹配文本的所有行(我经常用除去grep本身)    基本工作方式: grep 要匹配的内容 文件名, 例如:    grep 'test' d* 显示所有以d开头的文件中包含test的

一天一命令-sed

一天一命令-sed sed - stream editor for filtering and transforming text sed 4.2.2 sed是一种流编辑器,读取一行,处理一行,输出一行.sed先读取文件中的一行内容存储到被称为模式空间(pattern space)的临时缓冲区中,接着根据设定的条件来处理缓冲区中的内容,多个条件则多次处理,处理完成后,输出到屏幕,接着读取和处理下一行.源文件内容并没有改变,除非使用重定向存储输出.Sed主要用来自动编辑一个或多个文件:简化对多个文

Linux文本处理命令“sed”简解

文本处理编辑命令sed 命令格式: sed [选项] '(截取的行)[动作]' 文件名 选项:-n:只把经过sed处理的行输出 -e:允许输入多条动作 -i:sed修改的结果写入文件 截取行:(1)直接输入行号 (2)/正则表达式/ (3)x,y 从x到y行,也可以用正则取代 (4)x,y! 取反 (5)x~y 从x行开始,步进y行 (6)$ 文档末 动作:p  打印   eg: sed -n '(行)p' student.txt a  行后增加新的一行,i  行前增加新的一行 sed  '1,

Linux常用命令——sed

sed 字符流编辑器 sed 是Stream Editor(字符流编辑器)的缩写,简称刘编辑器.sed 是操作.过滤和转换文本内容的强大的工具.常用功能包括对文件实现快速增删改查,其中查询的功能中最常用的两大功能是过滤(过滤制定字符串)取行(取出指定行)语法格式:sed[选项][sed内置命令字符][输入文件]注意:1.sed 以及后面的选项.命令和输出文件,每个元素之间都要至少要有一个空格 参数选项: 参数 说明 -i 直接修改文件内容 -n 静默模式,仅打印和sed命令匹配的内容 -r 支持

如何替换某文件中的所有的特定字符?---linux sed命令(文本编辑命令) (转载)

转自:http://blog.csdn.net/year_9/article/details/20318407 sed是一个很好的文件处理工具,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作.(总:sed处理对象是文件,怎么处理?是以逐行处理,何种处理?替换,删除..) sed命令行格式为: sed [-nefri] ‘command’ 输入文本 常用选项: -i∶直接修改读取的档案内容,而不是由萤幕输出. -n∶使用安静(silent)模式.在一般 sed 的用法中

Linux 命令---- sed

sed 命令:  常用场景:1. 在指定位置增加内容2. 删除指定字符所在的行:3. 替换指定字符串为新的字符串:4. 只显示包含指定字符的内容 Answer:-i: 表示将修改直接持久化到文件中1.>sed -i '/test/a\one\ntwo' test.txt // 在存在test字符串的行后添加one 然后换行添加two 注: 不用加 g选项 就默认把符合条件的都加入 a\ 后面的内容 加入一行默认是自动换行:最后一行不用加 \n >sed -i '#test_3#a\two' t

linux基础命令 sed

sed     (stream editor)     linux三剑客老二,流编辑器,实现对文件的增删改替换查 参数      -n 取消默认输出      -i  修改内容     -e允许多项编辑,p打印 sed   -n  '$' p  ett,txt    $是行尾的意思,表示打印出最后一行 g与s联合使用时,表示对当前全局匹配替换 s常说的查找并替换,用一个字符串替换成另一个 sed   -i  s#oldboy#oldgirl#g   a.txt       # 是分隔符 sed是