【原创】Sed的man手册参数完全解释


学者,急必失,骄必败……
/++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
‐e script, ‐‐expression=script add the script to the commands to be executed 以选项指定的 script 来处理文本。 补充:如果命令行上只有一个指令的时候可以不用写‐e,但是如果有多个指令的话一定要在每个指令的前 面加‐e 选项;sed 指令用引号单引号和双引号指定都可以,或者可以不用引号,这个时候如果指令中有特 殊字符,要用反斜杠\ 来屏蔽掉特殊字符比如“空格”、“;”等,所以 sed 命令:sed ‐e‘1p’sed.txt 可 以这样写: sed ‘1p’sed.txt 不用指定‐e,直接加命令‘1p’或者:sed 1p sed.txt 不用加引号, 如果指令中有特殊字符的话一定要用反斜杠来转义比如:sed 1s/ line/LINE/p sed.txt 会出现 unterminated `s' command 的错误,如果加了反斜杠 sed 1s/\ line/LINE/p sed.txt 就可以正确运 行,但是建议用单引号,同时写上‐e,否则阅读难度增大。哦差点忘了,如果指令有多个指令,可以有三 种书写方式:1.多个指令写在一起,用分号分隔;2.多个指令分开写,但是要在每个指令前放置‐e;3.使 用 Bash 的分行指令功能,注意在输入单引号后按回车键(Enter)就会出现多行输入的提示符“>”。 / +++++++++++++++++++++++++++++++++++++++例子 2++++++++++++++++++++++++++++++++++++++ sed.txt 的内容如下: This is the 1st line. This is the 2nd line. 1.sed 命令:sed –ne ‘1p’ sed.txt 、sed –n ‘1p’ sed.txt 、sed –n 1p sed.txt 执行以后显示 This is the 1st line. 2.sed 命令:sed ‐ne ‘1s/ line/LINE/p’ sed.txt 、sed ‐ne 1s/\ line/LINE/p sed.txt 执行后 显示 This is the 1stLINE. 3.sed 命令: sed ‐ne '1s/1st/first/g;2s/2nd/second/g;p' sed.txt 或者 sed –n ‐e '1s/1st/first/g' ‐e '2s/2nd/second/g' ‐e 'p' sed.txt 或者:sed –n –e ‘ #按下回车键
学者,急必失,骄必败……
This is the 1st line. This is the 2nd line. This is the 3rd line. sed 命令:sed –n –f sed.script sed.txt 其中 sed.script 的内容如下:
#删除第一行 1d #在第三行前面插入以下一行数据 3i \ This is the insert line # 打印当前模式空间的内容 P 执行命令后显示结果如下: This is the 2nd line. This is the insert line This is the 3rd line. /++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>1s/1st/first/g #再按下回车键 >2s/2nd/second/g #同上 >p #同上 >’ sed.txt 以上三种书写形式的命令执行后都会显示: This is the first line. This is the second line. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
中文翻译:Sed 是一个流编辑器,用于处理来自文件或者管道的标准文本的转换工作,尽管在某些方面类 似于允许脚本编辑的编辑器,但是由于 sed 仅仅对其输入进行一次扫面,因此比起其他交互编辑器,sed 更加高效。同时由于 sed 过滤来自管道中的文本,使得它变得与众不同。 补充:Sed 把当前处理的行存储在称为模式空间(pattern space)的临时缓冲区中。一旦 sed 完成对模 式空间按中的行的处理,模式空间中的行就被送往屏幕(除非命令是删除行或者打印到打印机),行被处理 完成以后,就被移出模式空间,程序接着读入下一行,处理、显示、移出……文件输入的最后一行被处理 完以后,sed 结束,通过在临时缓冲区存储每一行,然后再缓冲区中操作该行,保证原始文件不会被破坏。
‐i[SUFFIX], ‐‐in‐place[=SUFFIX] edit files in place (makes backup if extension supplied) 就地编辑文件,如果指定了‐i 的值(suffix)sed 将会备份一份原文件。 解释:就地编辑文件,如果没有该选项,sed 将输出送入标准输出。该选项使 sed 将输出送入原来的输入 文件中,一旦指定了后缀名 suffix 了以后,sed 将备份原来的输入文件,该备份文件名以原文件名后接 suffix 命令,如果想在原文件名和后缀 suffix 之间有一个句点,那么必须在后缀 suffix 中包含一个句 点,‐i 选项后面直接加备份文件后缀,‐i 和后缀之间没有空格。如果文件名需要特殊符号,必须要用反 斜杠转义例如 sed –n –i\ .bak –e ‘command’ txtfile 或者 sed –n –I’ .bak’ –e ‘command’ txtfile 这样得到的备份名为 txtfile□.bak 就可以有空格了(这里我用□代表空格)。 / +++++++++++++++++++++++++++++++++++++++例子 4++++++++++++++++++++++++++++++++++++++ sed.txt 的内容如下(“^$”代表空行): This is the 1st line. This is the 2nd line. ^$ This is the 3rd line. sed 命令(#后面的文字表示注释): sed –n –i.bak ‐e '/^$/!{ #“/^$/!”是不要匹配空行,按回车键换行。 >#i 这里是要在当前行前添加<LS> >i \ ><LS> >#a 这里是要在当前行后添加<LE> >;a \ ></LE> >;p >}' sed.txt 执行以后没有任何显示,是因为处理的结果输入写入到 sed.txt,原来的内容已经备份到
合集下载

sed 命令详解 很全的

sed 命令详解 很全的

Linux sed命令实例详解功能说明:利用script来处理文本文件。

语法:sed [-hnV][-e]补充说明:sed可依照script的指令,来处理、编辑文本文件。

参数:-e<script>或—expression=<script> 以选项中指定的script来处理输入的文本文件。

-f文件>或—file=<script文件> 以选项中指定的script文件来处理输入的文本文件。

-h或—help 显示帮助。

-n或—quiet或--silent 仅显示script处理后的结果。

-V或—version 显示版本信息。

# sed -e 's/123/1234/' a.txt将a.txt文件中所有行中的123用1234替换(-e表示命令以命令行的方式执行;参数s,表示执行替换操作)# sed -e '3,5 a4' a.txt将a.txt文件中的3行到5行之间所有行的后面添加一行内容为4的行(参数a,表示添加行,参数a后面指定添加的内容)# sed -e '1 s/12/45/' a.txt把第一行的12替换成45sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`批量处理通过grep搜索出来的所有文档,将这些文档中所有的oldstring用newstring 替换(-i参数表示直接对目标文件操作)$ sed -n 's/^test/mytest/p' example.file(-n)选项和p标志一起使用表示只打印那些发生替换的行。

也就是说,如果某一行开头的test被替换成mytest,就打印它。

(^这是正则表达式中表示开头,该符号后面跟的就是开头的字符串)(参数p表示打印行)$ sed 's/^wangpan/&19850715/' example.file表示被替换换字符串被找到后,被替换的字符串通过&符号连接给出的字符串组成新字符传替换被替换的字符串,所有以wangpan开头的行都会被替换成它自已加19850715,变成wangpan19850715$ sed -n 's/\(love\)able/\1rs/p' example.filelove被标记为1,所有loveable会被替换成lovers,而且替换的行会被打印出来。

sed命令的使用方法

sed命令的使用方法

sed命令的使用方法【原创实用版3篇】目录(篇1)1.sed 命令简介2.sed 命令的基本语法3.sed 命令的常用选项4.sed 命令的应用实例正文(篇1)【sed 命令简介】sed(Stream Editor)是一种流编辑器,用于对文本文件进行处理。

它可以对文本文件进行替换、删除、插入等操作,功能非常强大。

sed 命令在 Linux 和 Unix 系统中广泛使用,对于文本文件的处理非常方便。

【sed 命令的基本语法】sed 命令的基本语法如下:```sed [选项] 脚本```其中,脚本是用于指定 sed 命令操作的文本文件。

sed 命令会按照脚本中的指令对输入文件进行处理,并将结果输出到标准输出设备(通常是屏幕)。

【sed 命令的常用选项】以下是一些常用的 sed 命令选项:- -i:用于在原始文件上进行修改,而不是创建一个新的输出文件。

- -n:用于只输出与脚本匹配的行。

- -v:用于显示脚本的详细输出信息。

- -r:用于递归地处理目录中的所有文件。

- -e:用于指定一个或多个脚本。

【sed 命令的应用实例】以下是一些 sed 命令的应用实例:1.替换:将文本文件中的所有“hello”替换为“world”。

```sed "s/hello/world/" input.txt > output.txt```2.删除:删除文本文件中的所有空行。

```sed "/^$/d" input.txt > output.txt```3.插入:在文本文件的每一行末尾插入一个字符串。

```sed "s/$/abc/" input.txt > output.txt```4.筛选:只输出文本文件中包含特定字符串的行。

```sed "/hello/p" input.txt > output.txt```【结语】sed 命令是一种非常实用的文本处理工具,它可以帮助我们对文本文件进行各种复杂的操作。

sed_4.2.1_man_中文

sed_4.2.1_man_中文

本文参照sed 4.2.1的man原文翻译。

蓝色字体为man原文,黑色字体是我的译文。

水平有限,难免错漏,欢迎各位指正!GNU文档的精髓在info页,而不是man页。

当然更希望有同仁将sed的info页翻译出来,方便大家更扎实地运用好sed这个功能强大的工具。

翻译者:李启训。

NAME名称sed - stream editor for filtering and transforming text用于过滤和转换文本的流编辑器。

SYNOPSIS提要sed [OPTION]... {script-only-if-no-other-script} [input-file]...DESCRIPTION描述Sed is a stream editor. A stream editor is used to perform basic texttransformations on an input stream (a file or input from a pipeline).While in some ways similar to an editor which permits scripted edits(such as ed), sed works by making only one pass over the input(s), andis consequently more efficient. But it is sed's ability to filter textin a pipeline which particularly distinguishes it from other types ofeditors.Sed 是一个流编辑器。

流编辑器用于转换输入流(文件或者来自管道)的基本文本。

虽然在某些方面它类似于允许脚本编辑的编辑器(比如ed),但是sed只对一次传递的输入进行操作,当然更加高效。

sed相关参数及基本用法

sed相关参数及基本用法

sed相关参数及基本⽤法1. sed 参数:–n 特殊处理某⼀⾏–i 修改更改⽂件内容–s 替换取代–P 列印–d 删除2. sed 替换指定内容命令:sed ‘-i s/新的内容/要替换内容/ ’3. sed 查看指定内容命令:sed –n ‘/2018-10-31 12:12:12’/, 2018-10-31 12:12:12/p’ file.txt4. sed合并⽂件上下两⾏为⼀⾏命令:sed –n ‘{N; s/\n/\t/p}’ file.txt5. sed 在⽂件的指定位置插⼊相关内容1 > 在指定内容前插⼊相应内容命令 ; Sed –i ‘s/指定字符/要插⼊的字符&/’ file.txt例如:在file.txt的11前插⼊aaa# cat file.txt1122233444# sed -i 's/11/aaa&' file.txt# cat file.txtaaa11222334442 > 在指定内容后插⼊相应内容命令 ; Sed –i ‘s/指定字符/&要插⼊的字符/’ file.txt例如:在file.txt的11后插⼊aaa# cat file.txt1122233444# sed -i 's/11/&aaa' file.txt# cat file.txt11aaa222334446.sed 处理⾏头⾏尾内容1> 在每⾏的头添加字符,⽐如“HEAD”命令:Sed –i ‘s/^/ HEAD&/’ /tmp/file.txt2 >在每⾏的尾部添加字符,⽐如“tail”命令:Sed -I ‘s/$/&tail/’ /tmp/file.txt7. sed 删除所有空格并在指定位置插⼊相关内容命令:Sed -i ‘/^$/d;s/111/aaa&/;s/111/&bb’ file.txt 注:“^” 代表⾏⾸ “$” 代表⾏尾。

linux命令总结sed命令详解

linux命令总结sed命令详解

linux命令总结sed命令详解Sed 简介sed 是⼀种新型的,⾮交互式的编辑器。

它能执⾏与编辑器 vi 和 ex 相同的编辑任务。

sed 编辑器没有提供交互式使⽤⽅式,使⽤者只能在命令⾏输⼊编辑命令、指定⽂件名,然后在屏幕上查看输出。

sed 编辑器没有破坏性,它不会修改⽂件,除⾮使⽤ shell 重定向来保存输出结果。

默认情况下,所有的输出⾏都被打印到屏幕上。

sed ⼯作过程sed 编辑器逐⾏处理⽂件(或输⼊),并将输出结果发送到屏幕。

sed 的命令就是在 vi和 ed/ex 编辑器中见到的那些。

sed 把当前正在处理的⾏保存在⼀个临时缓存区中,这个缓存区称为模式空间或临时缓冲。

sed 处理完模式空间中的⾏后(即在该⾏上执⾏ sed 命令后),就把改⾏发送到屏幕上(除⾮之前有命令删除这⼀⾏或取消打印操作)。

sed 每处理完输⼊⽂件的最后⼀⾏后, sed 便结束运⾏。

sed 把每⼀⾏都存在临时缓存区中,对这个副本进⾏编辑,所以不会修改或破坏源⽂件。

如图 1: sed 处理过程。

从上图可以看出 sed 不是破坏性的,它不会修改正在编辑的⽂件。

Sed 命令格式sed 命令⾏格式为: sed [选项] ‘ command’ 输⼊⽂本Sed 定位Sed 命令在没有给定的位置时,默认会处理所有⾏;Sed ⽀持⼀下⼏种地址类型:1、 first~step这两个单词的意思: first 指起始匹配⾏, step 指步长,例如: sed -n 2~5p 含义:从第⼆⾏开始匹配,隔 5 ⾏匹配⼀次,即 2,7,12.......。

2、 $这个$符表⽰匹配最后⼀⾏。

3、 /REGEXP/这个是表⽰匹配正则那⼀⾏,通过//之间的正则来匹配。

4、 \cREGEXPc这个是表⽰匹配正则那⼀⾏,通过\c 和 c 之间的正则来匹配,c 可以是任⼀字符5、 addr1, add2定址 addr1, add2 决定⽤于对哪些⾏进⾏编辑。

Sed-命令详解

Sed-命令详解

Sed 命令详解1.sed -n '2'p打印文件的第二行。

2.sed -n '1,3'p打印文件的1到3行3. sed -n '/Neave/'p打印匹配Neave的行(模糊匹配)4. sed -n '4,/The/'p在第4行查询模式The5. sed -n '1,$'p打印整个文件,$表示最后一行。

6. sed -n '/.*ing/'p匹配任意字母,并以ing结尾的单词(点号不能少)7 sed -n / -e '/music/'=打印匹配行的行号,-e 会打印文件的内容,同时在匹配行的前面标志行号。

-n只打印出实际的行号。

8.sed -n -e '/music/'p -e '/music/'=打印匹配的行和行号,行号在内容的下面9.sed '/company/' a\ "Then suddenly it happend"选择含有company的行,将后面的内容"Then suddenly it happend"加入下一行。

注意:它并不改变文件,所有操作在缓冲区,如果要保存输出,重定向到一个文件。

10. sed '/company/' i\ "Then suddenly it happend"同9,只是在匹配的行前插入11.sed '/company/' c\ "Then suddenly it happend"用"Then suddenly it happend"替换匹配company的行的内容。

12.sed '1'd ( '1,3'd '$'d '/Neave/'d)删除第一行(1到3行,最后一行,匹配Neave的行)13.[ address [,address]] s/ pattern-to-find /replacement-pattern/[g p w n]s选项通知s e d这是一个替换操作,并查询pattern-to-find,成功后用replacement-pattern替换它。

sed 一些选项和命令详解

1.简介sed是非交互式的编辑器。

它不会修改文件,除非使用shell重定向来保存结果。

默认情况下,所有的输出行都被打印到屏幕上。

sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。

具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。

sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示。

处理完输入文件的最后一行后,sed便结束运行。

sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。

2.定址定址用于决定对哪些行进行编辑。

地址的形式可以是数字、正则表达式、或二者的结合。

如果没有指定地址,sed将处理输入文件的所有行。

地址是一个数字,则表示行号;是“$"符号,则表示最后一行。

例如:sed -n '3p'datafile只打印第三行只显示指定行范围的文件内容,例如:# 只查看文件的第100行到第200行sed -n '100,200p' mysql_slow_query.log地址是逗号分隔的,那么需要处理的地址是这两行之间的范围(包括这两行在内)。

范围可以用数字、正则表达式、或二者的组合表示。

例如:a\ 命令是追加命令,追加将添加新文本到文件中当前行(即读入模式缓冲区中的行)的后面。

所追加的文本行位于sed命令的下方另起一行。

如果要追加的内容超过一行,则每一行都必须以反斜线结束,最后一行除外。

最后一行将以引号和文件名结束。

sed '/^hrwang/a\>hrwang and mjfan are husband\>and wife'datafile#如果在datafile文件中发现匹配以hrwang开头的行,则在该行下面追加hrwang and mjfan are husband and wife6.8 i\ 命令i\ 命令是在当前行的前面插入新的文本。

sed详解---用法及解释

sed详解---⽤法及解释1.sed -n '2'p filename打印⽂件的第⼆⾏。

2.sed -n '1,3'p filename打印⽂件的1到3⾏3. sed -n '/Neave/'p filenameTable of Contents1. Sed简介2. 定址3. Sed命令4. 选项5. 元字符集6. 实例7. 脚本1. Sed简介sed是⼀种在线编辑器,它⼀次处理⼀⾏内容。

处理时,把当前处理的⾏存储在临时缓冲区中,称为“模式空间”(pattern space),接着⽤sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。

接着处理下⼀⾏,这样不断重复,直到⽂件末尾。

⽂件内容并没有改变,除⾮你使⽤重定向存储输出。

Sed主要⽤来⾃动编辑⼀个或多个⽂件;简化对⽂件的反复操作;编写转换程序等。

以下介绍的是Gnu 版本的Sed 3.02。

2. 定址可以通过定址来定位你所希望编辑的⾏,该地址⽤数字构成,⽤逗号分隔的两个⾏数表⽰以这两⾏为起⽌的⾏的范围(包括⾏数表⽰的那两⾏)。

如1,3表⽰ 1,2,3⾏,美元符号($)表⽰最后⼀⾏。

范围可以通过数据,正则表达式或者⼆者结合的⽅式确定。

3. Sed命令调⽤sed命令有两种形式:sed [options] 'command' file(s)sed [options] -f scriptfile file(s)a\在当前⾏后⾯加⼊⼀⾏⽂本。

b lable分⽀到脚本中带有标记的地⽅,如果分⽀不存在则分⽀到脚本的末尾。

c\⽤新的⽂本改变本⾏的⽂本。

d从模板块(Pattern space)位置删除⾏。

D删除模板块的第⼀⾏。

i\在当前⾏上⾯插⼊⽂本。

h拷贝模板块的内容到内存中的缓冲区。

H追加模板块的内容到内存中的缓冲区g获得内存缓冲区的内容,并替代当前模板块中的⽂本。

G获得内存缓冲区的内容,并追加到当前模板块⽂本的后⾯。

sed中文手册

SED 手册Sed(Stream EDitor)为 UNIX 系统上提供将编辑工作自动化的编辑器 , 使用者无需直接编辑资料。

使用者可利用 sed 所提供 20 多种不同的函数参数 , 组合(解 [1])它们完成不同的编辑动作。

此外 , 由於 sed 都以行为单位编辑文件 , 故其亦是行编辑器(line editor)。

一般 sed 最常用在编辑那些需要不断重覆某些编辑动作的文件上 , 例如将文件中的某个字串替换成另一个字串等等。

这些相较於一般 UNIX 编辑器(交谈式的, 如 vi、emacs)用手动的方式修改文件 , sed 用起来较省力。

SED 手册Sed(Stream EDitor)为 UNIX 系统上提供将编辑工作自动化的编辑器 , 使用者无需直接编辑资料。

使用者可利用 sed 所提供 20 多种不同的函数参数 , 组合(解 [1])它们完成不同的编辑动作。

此外 , 由於 sed 都以行为单位编辑文件 , 故其亦是行编辑器(line editor)。

一般 sed 最常用在编辑那些需要不断重覆某些编辑动作的文件上 , 例如将文件中的某个字串替换成另一个字串等等。

这些相较於一般 UNIX 编辑器(交谈式的, 如 vi、emacs)用手动的方式修改文件 , sed 用起来较省力。

本文转自,原文出处疑为:.tw aspac@.tw (2001-07-29 08:05:00)SED 手册 - 1. Introduction.tw aspac@.tw (2001-07-29 08:05:00)1.IntroductionSed(Stream EDitor)为 UNIX 系统上提供将编辑工作自动化的编辑器 , 使用者无需直接编辑资料。

使用者可利用 sed 所提供 20 多种不同的函数参数 , 组合(解 [1])它们完成不同的编辑动作。

此外 , 由於 sed 都以行为单位编辑文件 , 故其亦是行编辑器(line editor)。

sed命令的使用方法

sed命令的使用方法(原创实用版2篇)目录(篇1)1.sed 命令简介2.sed 命令的基本语法3.sed 命令的应用示例正文(篇1)【sed 命令简介】sed(Stream Editor,流编辑器)是一种在 Linux 和 Unix 系统中广泛使用的文本处理工具,它可以对文本文件进行非破坏性的编辑。

sed 命令可以对文本进行替换、删除、插入等操作,也可以进行复杂的文本处理任务,如自动格式化、文本转换等。

【sed 命令的基本语法】sed 命令的基本语法如下:```sed [选项] 脚本```其中,选项包括:- -i:对原文件进行修改- -n:只输出经过处理的文本- -v:显示详细输出信息- -e:指定脚本文件脚本部分则是对文本进行处理的一系列命令,通常是一条或多条命令。

这些命令可以组合使用,以实现复杂的文本处理任务。

【sed 命令的应用示例】下面我们通过一些应用示例来具体了解 sed 命令的使用方法:1.替换文本假设我们有一个名为 test.txt 的文件,内容如下:```Hello, world!This is a test.```我们可以使用 sed 命令将文件中的所有“world”替换为“universe”:```sed "s/world/universe/" test.txt```2.删除文本我们可以使用 sed 命令将文件中的所有“test”删除:```sed "/test/d" test.txt```3.插入文本假设我们要在文件的每一行前加上“# ”,可以使用以下命令:```sed "1i# " test.txt```4.对文本进行格式化我们可以使用 sed 命令将文件中的文本转换为大写:```sed "y/a-z/A-Z/" test.txt```【总结】sed 命令是一种功能强大的文本处理工具,它可以在 Linux 和 Unix 系统中对文本文件进行非破坏性的编辑。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档