sed命令使用

合集下载

sed指令用法

sed指令用法

sed指令用法sed是一个流编辑器,用于对文本文件进行基本的文本转换和操作。

它可以通过一系列指令对文本进行替换、删除、插入和格式化等操作,方便快捷地处理文本数据。

本篇文章将详细介绍sed指令的用法。

一、基本用法sed命令的基本语法如下:sed [选项] 脚本文件 [输入文件]其中,选项是一些可选的参数,可以用来控制sed命令的行为;脚本文件是包含sed指令的文件;输入文件是需要进行处理的文本文件。

执行sed命令后,它会按照脚本文件中定义的指令对输入文件进行操作,并将结果输出到标准输出。

二、指令分类sed指令可以分为以下几类:1. 查找和替换:使用正则表达式查找文本中的匹配项,并进行替换操作。

2. 删除和插入:删除文本中的某些内容,或向文本中插入新的内容。

3. 格式化:对文本进行排版和格式化,如缩进、换行等。

4. 其他操作:如复制、链接、统计行数等。

三、用法示例1. 查找和替换示例以下是一个查找和替换的示例脚本:sed 's/apple/orange/g' input.txt该指令会在input.txt文件中将所有出现的"apple"替换为"orange"。

2. 删除和插入示例以下是一个删除空白行的脚本:sed '/^[^ ]/ { N; s/\n//; }' input.txt该指令会保留非空白行,并将相邻的空白行合并为一行。

以下是一个向文本中插入新行的脚本:sed '$a\new line' input.txt该指令会在input.txt文件的末尾插入一行"new line"。

3. 格式化示例以下是一个将文本按指定宽度排版的脚本:sed 's/\(.*\)/&\n/g; s/^\n*//; s/\n/\t/g; s/\t*$//;s/\t*/& /g; /^$/d' input.txt width=20 && width=80 >output.txt该指令会将input.txt文件中的每一行按照指定的宽度进行排版,并将结果输出到output.txt文件中。

sed基本用法

sed基本用法

`sed` 是一个流编辑器,它用于在文本流中进行基本的文本转换。

它以行为单位处理文本,可以执行插入、删除、查找和替换等操作。

以下是`sed` 的基本用法:1. 插入文本(Insertion):使用`i\` 命令可以在指定行之前插入文本。

例如,要在第5行之前插入一行文本,可以使用以下命令:```arduinosed -i '5i\This is the new line of text.' filename.txt```2. 删除文本(Deletion):使用`d` 命令可以删除指定行。

例如,要删除第10行,可以使用以下命令:```arduinosed -i '10d' filename.txt```3. 查找和替换文本(Substitution):使用`s` 命令可以查找并替换指定文本。

例如,要将所有出现的"apple" 替换为"orange",可以使用以下命令:```arduinosed -i 's/apple/orange/g' filename.txt```其中,`g` 表示全局替换,即替换每一行中的所有匹配项。

如果不加`g` 参数,只会替换每行中的第一个匹配项。

4. 打印文本(Print):使用`p` 命令可以打印指定行。

例如,要打印第10行到第20行,可以使用以下命令:```arduinosed -n '10,20p' filename.txt```使用`-n` 参数可以禁止默认打印所有行,只打印指定的行。

5. 控制输出(Control):使用`q` 命令可以退出`sed` 并打印指定行,然后退出。

例如,要打印第10行然后退出,可以使用以下命令:```arduinosed -n '10q' filename.txt```6. 正则表达式(Regular Expression):`sed` 支持使用正则表达式进行更复杂的文本处理。

sed 命令用法

sed 命令用法

sed 命令用法Sed命令是一种非常强大的文本处理工具,它可以用来编辑、转换、替换文本文件中的内容。

在本文中,我们将介绍Sed命令的用法,包括基本用法、高级用法和实际应用。

基本用法Sed命令的基本用法非常简单,它可以用来替换文本文件中的字符串。

例如,我们可以使用以下命令将文件中的“hello”替换为“world”:sed 's/hello/world/g' filename在这个命令中,“s”表示替换操作,“hello”是要被替换的字符串,“world”是要替换成的字符串,“g”表示全局替换。

除了替换操作,Sed命令还可以用来删除行、插入行、追加行等操作。

例如,我们可以使用以下命令删除文件中的第5行:sed '5d' filename在这个命令中,“5d”表示删除第5行。

高级用法除了基本用法,Sed命令还有一些高级用法,可以更加灵活地处理文本文件。

例如,我们可以使用正则表达式来匹配字符串。

例如,我们可以使用以下命令将文件中所有以“http”开头的行删除:sed '/^http/d' filename在这个命令中,“/^http/”表示匹配以“http”开头的行,“d”表示删除匹配的行。

Sed命令还可以使用分隔符来替换字符串。

例如,我们可以使用以下命令将文件中的“hello”替换为“world”:sed 's|hello|world|g' filename在这个命令中,“|”是分隔符,用来替换“/”。

实际应用Sed命令在实际应用中非常广泛,可以用来处理各种文本文件。

例如,我们可以使用Sed命令来批量修改文件名。

例如,我们可以使用以下命令将所有以“.txt”结尾的文件名中的“old”替换为“new”:for file in *.txt; do mv "$file" "$(echo $file | sed 's/old/new/g')"; done在这个命令中,“for file in *.txt”表示遍历所有以“.txt”结尾的文件,“mv”表示重命名文件,“$(echo $file | sed 's/old/new/g')”表示将文件名中的“old”替换为“new”。

sed高级用法

sed高级用法

sed高级用法sed是一种流编辑器,用于在文本流中进行编辑操作。

除了基本用法之外,sed还具有许多高级用法。

以下是一些常见的高级用法: 1. 使用正则表达式替换文本:sed可以使用正则表达式来替换文本。

例如,要将所有出现的“apple”替换为“orange”,可以使用以下命令:sed 's/apple/orange/g' filename这将在“filename”中找到所有出现的“apple”并将其替换为“orange”。

2. 删除指定行:要删除文件中的特定行,可以使用以下命令: sed 'Nd' filename这将删除文件中的第N行。

例如,要删除文件中的第5行,可以使用以下命令:sed '5d' filename3. 在特定行之前或之后插入文本:要在特定行之前或之后插入文本,可以使用以下命令:sed '/pattern/i text' filename这将在匹配“pattern”的行之前插入“text”。

要在匹配“pattern”的行之后插入文本,可以使用以下命令:sed '/pattern/a text' filename4. 搜索并打印指定行:要搜索文件中的特定行并将其打印出来,可以使用以下命令:sed -n '/pattern/p' filename这将在文件中搜索匹配“pattern”的行,并将其打印出来。

5. 批量编辑多个文件:要在多个文件中进行批量编辑,可以使用以下命令:sed -i 's/apple/orange/g' file1 file2 file3这将在“file1”、“file2”和“file3”中查找并替换所有出现的“apple”为“orange”。

这些仅仅是sed高级用法的一些示例,你可以参考sed的文档来了解更多的用法。

linux命令sed用法

linux命令sed用法

linux命令sed用法Linux命令sed是一款常用的文本处理工具,可以用来实现文本替换、删除、插入等多种操作。

其用法有以下几个方面:1. 替换文本sed命令最常用的功能就是替换文本。

语法如下:sed 's/old/new/g' file.txt其中,s表示替换指令,old表示要替换的文本,new表示替换后的文本,g表示全局替换。

file.txt表示要操作的文件名。

举个例子,假如我们有一个文件file.txt,里面是一些话题的名称,需要将其中的“人工智能”改成“AI”,可以使用以下命令:sed 's/人工智能/AI/g' file.txt2. 删除行如果我们需要删除文件中的某些行,可以使用d指令。

语法如下:sed '/pattern/d' file.txt其中,pattern表示匹配的文本。

file.txt表示要操作的文件名。

这样,可以将匹配到的行删除。

举个例子,如果我们需要将文件file.txt中包含“敏感词”的行全部删除,可以使用以下命令:sed '/敏感词/d' file.txt3. 插入文本如果需要在文件中某一行的前面或后面插入一些文本,可以使用i或a 指令。

语法如下:sed '/pattern/i\ new_line' file.txt或者:sed '/pattern/a\ new_line' file.txt其中,pattern表示匹配的文本,i表示在匹配行前面插入,a表示在匹配行后面插入,new_line表示要插入的文本。

举个例子,如果我们需要在文件file.txt中第二行前面插入一行“这是第一行”,可以使用以下命令:sed '2i\ 这是第一行' file.txt4. 多重编辑如果需要对同一个文件进行多次编辑操作,可以使用多个sed命令,并用分号隔开。

语法如下:sed 'command1; command2; command3...' file.txt举个例子,如果我们需要将文件file.txt中的“敏感词”全部删除,并将“人工智能”改成“AI”,可以使用以下命令:sed '/敏感词/d; s/人工智能/AI/g' file.txt总结sed命令作为一款强大的文本处理工具,可以帮助我们快速进行文本替换、删除、插入等操作,提高工作效率。

使用sed命令进行行删除和替换

使用sed命令进行行删除和替换

使用sed命令进行行删除和替换简介:sed(stream editor)是Linux系统中用于流编辑的一种强大工具,它能够实现对文本文件的修改、匹配、删除和替换等操作。

本文将介绍sed命令的使用方法,着重讨论行删除和替换功能。

一、行删除1. 删除单行要删除文件中的某一行,可以使用sed命令的“d”选项。

例如,删除文件中第5行的内容,可以使用以下命令:```shellsed '5d' filename```这样就会删除文件filename中的第5行。

2. 删除多行要删除文件中的多行,可以使用以下命令:```shellsed '2,5d' filename```这样会删除文件filename中的第2行到第5行的内容。

二、行替换1. 替换单词要替换文件中的某个单词,可以使用sed命令的“s”选项。

例如,将文件中的"old_word"替换为"new_word",可以使用以下命令:```shellsed 's/old_word/new_word/g' filename```这样会将文件filename中所有的"old_word"替换为"new_word"。

2. 替换行中的内容除了替换单个单词,sed命令还可以替换一整行的内容。

例如,将文件中包含"old_word"的行替换为"new_content",可以使用以下命令:```shellsed '/old_word/c new_content' filename```这样会将文件filename中所有含有"old_word"的行替换为"new_content"。

三、应用示例以下是一些使用sed命令进行行删除和替换的示例:1. 示例一:```This is line 1This is line 2This is line 3This is line 4This is line 5```要删除第3行和第4行,可以使用以下命令:```shellsed '3,4d' filename```执行结果为:```This is line 1This is line 2This is line 5```2. 示例二:```Hello, world!This is a test.Hello, sed!Goodbye, sed!```要将文件中所有的"sed"替换为"awk",可以使用以下命令:```shellsed 's/sed/awk/g' filename```执行结果为:```Hello, world!This is a test.Hello, awk!Goodbye, awk!```总结:本文介绍了sed命令的行删除和替换功能。

sed () 用法

sed是一种非交互式的文本编辑器,可以用来对文本文件进行各种操作。

sed命令通常用于在文本中查找、替换、删除或插入文本。

以下是一些常见的sed用法:
1. 替换文本:使用sed命令可以轻松地对文本进行替换。

例如,要将一个文件中所有的"cat"字符串替换为"dog",可以使用如下命令:
```
sed 's/cat/dog/g' filename.txt
```
这个命令将会在filename.txt的每一行中,将所有的"cat"替换为"dog"。

2. 删除行:使用sed命令可以删除指定的行。

例如,要删除一个文件中的第5行,可以使用如下命令:
```
sed '5d' filename.txt
```
这个命令将会删除filename.txt中的第5行。

3. 插入文本:使用sed命令可以在指定位置插入文本。

例如,要在一个文件的第10行后插入一行文本,可以使用如下命令:
```
sed '10a\This is a new line of text' filename.txt
```
这个命令将会在filename.txt的第10行后面插入一行文本"This is a new line of text"。

以上是一些sed命令的示例,但是实际使用中可能还有更多的用法和选项。

如果需要更详细的信息,可以使用man sed命令来查看sed的手册页。

SED用法

sed用法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)删除某行[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 abHello!ruby is me,welcome to my blog.end[root@localhost ruby]#sed'1a drink tea'ab#第一行后增加字符串"drink tea"Hello!drink tearuby is me,welcome to my blog.end[root@localhost ruby]#sed'1,3a drink tea'ab#第一行到第三行后增加字符串"drink tea"Hello!drink tearuby is me,welcome to my blog.drink teaenddrink tea[root@localhost ruby]#sed'1a drink tea\n or coffee'ab#第一行后增加多行,使用换行符\nHello!drink teaor coffeeruby is me,welcome to my blog.end代替一行或多行[root@localhost ruby]#sed'1c Hi'ab#第一行代替为HiHiruby is me,welcome to my blog.end[root@localhost ruby]#sed'1,2c Hi'ab#第一行到第二行代替为HiHiend替换一行中的某部分格式: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 abHello!ruby is me,welcome to my blog.endbye删除匹配行sed-i'/匹配字符串/d'filename(注:若匹配字符串是变量,则需要“”,而不是‘’。

sed命令用法

sed命令用法sed,即Stream EDitor的缩写,是一种流编辑器,它能够使用户对文本流进行处理,它是Linux系统中最常被使用的数据处理工具,能够快速且高效完成文本处理工作。

1、sed命令简介sed是一种流编辑器,由Unix系统提供,它能够在脚本文件中调用,以完成一些文本处理任务。

它支持一些正则表达式,也可以使用字符串或数字作为参数,用于查找和替换字符串。

它可以在文本文件、标准输入流、一个或多个文件中进行编辑和处理,它的好处在于速度快,可以使用通配符规范文本文件,使用一次可以改变多行文本,并且可以控制环境。

2、sed命令用法(1)sed命令基本形式sed [选项] 'command' filename(2)sed命令参数-i.bak:备份当前被编辑文件,以"filename.bak"格式作为存档文件;-n:使用安静模式,即不自动打印输出;-e:后接 sed 命令行,用于执行多条命令;-f:执行 sed 编辑脚本,使得程序分离命令和数据;-r:使用扩展的正则表达式;-u:表示单字节字符集。

(3)sed 命令常见功能a:在文件末尾或某一行后面添加文本;c:用新文本替换一行或多行;d:删除一行或多行;i:在文件开头或某一行前面添加文本;p:打印行;s:使用正则表达式匹配已存在的文本内容,并替换成指定文本;r:从外部文件读入文本,替换当前行;n:读取下一行文本;q:退出 sed 命令。

3、使用实例(1)打印文件的第一、三、五行sed -n '1p;3p;5p' filename.txt(2)从每一行的开头添加字符串:sed 's/^/mystring/' filename.txt(3)替换文件中的字符串sed 's/string1/string2/g' filename.txt。

sed常见用法

sed常见用法
sed是一个强大的文本处理工具,它可用于在命令行中编辑文本文件的内容。

sed通常用于过滤和转换文本数据,它可以执行的操作包括查找和替换、删除行、插入行、追加行、转换大小写等。

以下是sed的一些常见用法:
1. 查找和替换:使用sed命令可以查找并替换文本中的某个字符串,语法为:sed 's/old/new/g' filename,其中old表示要被替换的字符串,new表示替换后的字符串,g表示全局替换。

2. 删除行:使用sed命令可以删除文本中的某些行,语法为:sed 'Nd' filename,其中N表示要删除的行数。

3. 插入行:使用sed命令可以在文本中插入新的行,语法为:sed 'Niafter_text' filename,其中N表示在第N行后插入文本,i表示插入,after_text表示要插入的文本内容。

4. 追加行:使用sed命令可以在文本的末尾追加新的行,语法为:sed '$aafter_text' filename,$表示文本的末尾,a表示追加,after_text表示要追加的文本内容。

5. 转换大小写:使用sed命令可以将文本中的字母转换成大写或小写,语法为:sed 's/[a-z]/U&/g' filename(将小写字母转换成大写字母),sed 's/[A-Z]/L&/g' filename(将大写字母转换成小写字母)。

以上是sed的一些常见用法,它们可以帮助我们更轻松地处理文本文件。

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

文本间隔:--------# 在每一行后面增加一空行sed G# 将原来的所有空行删除并在每一行后面增加一空行。

# 这样在输出的文本中每一行后面将有且只有一空行。

sed '/^$/d;G'# 在每一行后面增加两行空行sed 'G;G'# 将第一个脚本所产生的所有空行删除(即删除所有偶数行)sed 'n;d'# 在匹配式样“regex”的行之前插入一空行sed '/regex/{x;p;x;}'# 在匹配式样“regex”的行之后插入一空行sed '/regex/G'# 在匹配式样“regex”的行之前和之后各插入一空行sed '/regex/{x;p;x;G;}'编号:--------# 为文件中的每一行进行编号(简单的左对齐方式)。

这里使用了“制表符” # (tab,见本文末尾关于'\t'的用法的描述)而不是空格来对齐边缘。

sed = filename | sed 'N;s/\n/\t/'# 对文件中的所有行编号(行号在左,文字右端对齐)。

sed = filename | sed 'N; s/^/ /; s/ *\(.\{6,\}\)\n/\1 /'# 对文件中的所有行编号,但只显示非空白行的行号。

sed '/./=' filename | sed '/./N; s/\n/ /'# 计算行数(模拟 "wc -l")sed -n '$='文本转换和替代:--------# Unix环境:转换DOS的新行符(CR/LF)为Unix格式。

sed 's/.$//' # 假设所有行以CR/LF结束sed 's/^M$//' # 在bash/tcsh中,将按Ctrl-M改为按Ctrl-Vsed 's/\x0D$//' # ssed、gsed 3.02.80,及更高版本# Unix环境:转换Unix的新行符(LF)为DOS格式。

sed "s/$/`echo -e \\\r`/" # 在ksh下所使用的命令sed 's/$'"/`echo \\\r`/" # 在bash下所使用的命令sed "s/$/`echo \\\r`/" # 在zsh下所使用的命令sed 's/$/\r/' # gsed 3.02.80 及更高版本# DOS环境:转换Unix新行符(LF)为DOS格式。

sed "s/$//" # 方法 1sed -n p # 方法 2# DOS环境:转换DOS新行符(CR/LF)为Unix格式。

# 下面的脚本只对UnxUtils sed 4.0.7 及更高版本有效。

要识别UnxUtils版本的# sed可以通过其特有的“--text”选项。

你可以使用帮助选项(“--help”)看# 其中有无一个“--text”项以此来判断所使用的是否是UnxUtils版本。

其它DOS# 版本的的sed则无法进行这一转换。

但可以用“tr”来实现这一转换。

sed "s/\r//" infile >outfile # UnxUtils sed v4.0.7 或更高版本tr -d \r <infile >outfile # GNU tr 1.22 或更高版本# 将每一行前导的“空白字符”(空格,制表符)删除# 使之左对齐sed 's/^[ \t]*//' # 见本文末尾关于'\t'用法的描述# 将每一行拖尾的“空白字符”(空格,制表符)删除sed 's/[ \t]*$//' # 见本文末尾关于'\t'用法的描述# 将每一行中的前导和拖尾的空白字符删除sed 's/^[ \t]*//;s/[ \t]*$//'# 在每一行开头处插入5个空格(使全文向右移动5个字符的位置)sed 's/^/ /'# 以79个字符为宽度,将所有文本右对齐sed -e :a -e 's/^.\{1,78\}$/ &/;ta' # 78个字符外加最后的一个空格# 以79个字符为宽度,使所有文本居中。

在方法1中,为了让文本居中每一行的前# 头和后头都填充了空格。

在方法2中,在居中文本的过程中只在文本的前面填充# 空格,并且最终这些空格将有一半会被删除。

此外每一行的后头并未填充空格。

sed -e :a -e 's/^.\{1,77\}$/ & /;ta' # 方法1 sed -e :a -e 's/^.\{1,77\}$/ &/;ta' -e 's/\( *\)\1/\1/' # 方法2# 在每一行中查找字串“foo”,并将找到的“foo”替换为“bar”sed 's/foo/bar/' # 只替换每一行中的第一个“foo”字串 sed 's/foo/bar/4' # 只替换每一行中的第四个“foo”字串 sed 's/foo/bar/g' # 将每一行中的所有“foo”都换成“bar”sed 's/\(.*\)foo\(.*foo\)/\1bar\2/' # 替换倒数第二个“foo”sed 's/\(.*\)foo/\1bar/' # 替换最后一个“foo”# 只在行中出现字串“baz”的情况下将“foo”替换成“bar”sed '/baz/s/foo/bar/g'# 将“foo”替换成“bar”,并且只在行中未出现字串“baz”的情况下替换 sed '/baz/!s/foo/bar/g'# 不管是“scarlet”“ruby”还是“puce”,一律换成“red”sed 's/scarlet/red/g;s/ruby/red/g;s/puce/red/g' #对多数的sed都有效 gsed 's/scarlet\|ruby\|puce/red/g' # 只对GNU sed有效# 倒置所有行,第一行成为最后一行,依次类推(模拟“tac”)。

# 由于某些原因,使用下面命令时HHsed v1.5会将文件中的空行删除sed '1!G;h;$!d' # 方法1sed -n '1!G;h;$p' # 方法2# 将行中的字符逆序排列,第一个字成为最后一字,……(模拟“rev”)sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//'# 将每两行连接成一行(类似“paste”)sed '$!N;s/\n/ /'# 如果当前行以反斜杠“\”结束,则将下一行并到当前行末尾# 并去掉原来行尾的反斜杠sed -e :a -e '/\\$/N; s/\\\n//; ta'# 如果当前行以等号开头,将当前行并到上一行末尾# 并以单个空格代替原来行头的“=”sed -e :a -e '$!N;s/\n=/ /;ta' -e 'P;D'# 为数字字串增加逗号分隔符号,将“1234567”改为“1,234,567”gsed ':a;s/\B[0-9]\{3\}\>/,&/;ta' # GNU sedsed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta' # 其他sed# 为带有小数点和负号的数值增加逗号分隔符(GNU sed)gsed -r ':a;s/(^|[^0-9.])([0-9]+)([0-9]{3})/\1\2,\3/g;ta'# 在每5行后增加一空白行(在第5,10,15,20,等行后增加一空白行) gsed '0~5G' # 只对GNU sed有效sed 'n;n;n;n;G;' # 其他sed选择性地显示特定行:--------# 显示文件中的前10行(模拟“head”的行为)sed 10q# 显示文件中的第一行(模拟“head -1”命令)sed q# 显示文件中的最后10行(模拟“tail”)sed -e :a -e '$q;N;11,$D;ba'# 显示文件中的最后2行(模拟“tail -2”命令)sed '$!N;$!D'# 显示文件中的最后一行(模拟“tail -1”)sed '$!d' # 方法1sed -n '$p' # 方法2# 显示文件中的倒数第二行sed -e '$!{h;d;}' -e x # 当文件中只有一行时,输入空行 sed -e '1{$q;}' -e '$!{h;d;}' -e x # 当文件中只有一行时,显示该行 sed -e '1{$d;}' -e '$!{h;d;}' -e x # 当文件中只有一行时,不输出# 只显示匹配正则表达式的行(模拟“grep”)sed -n '/regexp/p' # 方法1sed '/regexp/!d' # 方法2# 只显示“不”匹配正则表达式的行(模拟“grep -v”)sed -n '/regexp/!p' # 方法1,与前面的命令相对应sed '/regexp/d' # 方法2,类似的语法# 查找“regexp”并将匹配行的上一行显示出来,但并不显示匹配行sed -n '/regexp/{g;1!p;};h'# 查找“regexp”并将匹配行的下一行显示出来,但并不显示匹配行sed -n '/regexp/{n;p;}'# 显示包含“regexp”的行及其前后行,并在第一行之前加上“regexp”所 # 在行的行号(类似“grep -A1 -B1”)sed -n -e '/regexp/{=;x;1!p;g;$!N;p;D;}' -e h# 显示包含“AAA”、“BBB”或“CCC”的行(任意次序)sed '/AAA/!d; /BBB/!d; /CCC/!d' # 字串的次序不影响结果# 显示包含“AAA”、“BBB”和“CCC”的行(固定次序)sed '/AAA.*BBB.*CCC/!d'# 显示包含“AAA”“BBB”或“CCC”的行(模拟“egrep”)sed -e '/AAA/b' -e '/BBB/b' -e '/CCC/b' -e d # 多数sedgsed '/AAA\|BBB\|CCC/!d' # 对GNU sed有效# 显示包含“AAA”的段落(段落间以空行分隔)# HHsed v1.5 必须在“x;”后加入“G;”,接下来的3个脚本都是这样sed -e '/./{H;$!d;}' -e 'x;/AAA/!d;'# 显示包含“AAA”“BBB”和“CCC”三个字串的段落(任意次序)sed -e '/./{H;$!d;}' -e 'x;/AAA/!d;/BBB/!d;/CCC/!d'# 显示包含“AAA”、“BBB”、“CCC”三者中任一字串的段落(任意次序) sed -e '/./{H;$!d;}' -e 'x;/AAA/b' -e '/BBB/b' -e '/CCC/b' -e dgsed '/./{H;$!d;};x;/AAA\|BBB\|CCC/b;d' # 只对GNU sed有效# 显示包含65个或以上字符的行sed -n '/^.\{65\}/p'# 显示包含65个以下字符的行sed -n '/^.\{65\}/!p' # 方法1,与上面的脚本相对应sed '/^.\{65\}/d' # 方法2,更简便一点的方法# 显示部分文本——从包含正则表达式的行开始到最后一行结束sed -n '/regexp/,$p'# 显示部分文本——指定行号范围(从第8至第12行,含8和12行)sed -n '8,12p' # 方法1sed '8,12!d' # 方法2# 显示第52行sed -n '52p' # 方法1sed '52!d' # 方法2sed '52q;d' # 方法3, 处理大文件时更有效率# 从第3行开始,每7行显示一次gsed -n '3~7p' # 只对GNU sed有效sed -n '3,${p;n;n;n;n;n;n;}' # 其他sed# 显示两个正则表达式之间的文本(包含)sed -n '/Iowa/,/Montana/p' # 区分大小写方式选择性地删除特定行:--------# 显示通篇文档,除了两个正则表达式之间的内容sed '/Iowa/,/Montana/d'# 删除文件中相邻的重复行(模拟“uniq”)# 只保留重复行中的第一行,其他行删除sed '$!N; /^\(.*\)\n\1$/!P; D'# 删除文件中的重复行,不管有无相邻。

相关文档
最新文档