linuxSed命令详解

1 / 6 linux sed命令详解

1. Sed简介

sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。以下介绍的是Gnu版本的Sed 3.02。

2. 定址

可以通过定址来定位你所希望编辑的行,该地址用数字构成,用逗号分隔的两个行数表示以这两行为起止的行的范围(包括行数表示的那两行)。如1,3表示1,2,3行,美元符号($)表示最后一行。范围可以通过数据,正则表达式或者二者结合的方式确定 。

3. Sed命令

1) 调用sed命令有两种形式:

2) sed [options] 'command' file(s)

3) sed [options] -f scriptfile file(s)

4) a\ 在当前行后面加入一行文本。

5) b lable 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。

6) c\ 用新的文本改变本行的文本。

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

8) D 删除模板块的第一行。

9) i\ 在当前行上面插入文本。

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

11) H 追加模板块的内容到内存中的缓冲区

12) g 获得内存缓冲区的内容,并替代当前模板块中的文本。

13) G 获得内存缓冲区的内容,并追加到当前模板块文本的后面。

14) l 列表不能打印字符的清单。

15) n 读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。

16) N 追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。

17) p 打印模板块的行。

18) P(大写) 打印模板块的第一行。

19) q 退出Sed。

20) r file 从file中读行。

21) t label if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。

22) T label 错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。

23) w file 写并追加模板块到file末尾。

24) W file 写并追加模板块的第一行到file末尾。

25) ! 表示后面的命令对所有没有被选定的行发生作用。

26) s/re/string 用string替换正则表达式re。

27) = 打印当前行号码。

28) # 把注释扩展到下一个换行符以前。

以下的是替换标记

1)g表示行内全面替换。

2)p表示打印行。

3)w表示把行写入一个文件。

4)x表示互换模板块中的文本和缓冲区中的文本。

5)y表示把一个字符翻译为另外的字符(但是不用于正则表达式)

4. 选项

1)-e command, --expression=command 允许多台编辑。

2)-h, --help 打印帮助,并显示bug列表的地址。

3)-n, --quiet, --silent

4)取消默认输出。

5)-f, --filer=script-file 引导sed脚本文件名。

6)-V, --version 打印版本和版权信息。

5. 元字符集

1)^锚定行的开始 如:/^sed/匹配所有以sed开头的行。

2)$ 锚定行的结束 如:/sed$/匹配所有以sed结尾的行。

3). 匹配一个非换行符的字符 如:/s.d/匹配s后接一个任意字符,然后是d。

4)* 匹配零或多个字符 如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。

5)[] 匹配一个指定范围内的字符,如/[Ss]ed/匹配sed和Sed。

6)[^] 匹配一个不在指定范围内的字符,如:/[^A-RT-Z]ed/匹配不包含A-R和T-Z的一个字母开头,紧跟ed的行。

7)\(..\) 保存匹配的字符,如s/\(love\)able/\1rs,loveable被替换成lovers。

8)& 保存搜索字符用来替换其他字符,如s/love/**&**/,love这成**love**。

9)\< 锚定单词的开始,如:/\

10) \> 锚定单词的结束,如/love\>/匹配包含以love结尾的单词的行。

11) x\{m\} 重复字符x,m次,如:/0\{5\}/匹配包含5个o的行。

12) x\{m,\} 重复字符x,至少m次,如:/o\{5,\}/匹配至少有5个o的行。

13) x\{m,n\}重复字符x,至少m次,不多于n次,如:/o\{5,10\}/匹配5--10个o的行。

6. 实例

1) 删除:d命令

$ sed '2d' example-----删除example文件的第二行。

$ sed '2,$d' example-----删除example文件的第二行到末尾所有行。

$ sed '$d' example-----删除example文件的最后一行。

$ sed '/test/'d example-----删除example文件所有包含test的行。

2) 替换:s命令

a) sed 's/test/mytest/g' example-----在整行范围内把test替换为mytest。如果没有g标记,则只有每行第一个匹配的test被替换成mytest。

b) $ sed -n 's/^test/mytest/p' example-----(-n)选项和p标志一起使用表示只打印那些发生替换的行。也就是说,如果某一行开头的test被替换成mytest,就打印它。

c) $ sed 's/^192.168.0.1/&localhost/' example-----&符号表示替换换字符串中被找到的部份。所有以192.168.0.1开头的行都会被替换成它自已加 localhost,变成192.168.0.1localhost。

d) $ sed -n 's/\(love\)able/\1rs/p' example-----love被标记为1,所有loveable会被替换成lovers,而且替换的行会被打印出来。

e) $ sed 's#10#100#g' example-----不论什么字符,紧跟着s命令的都被认为是新的分隔符,所以,“#”在这里是分隔符,代替了默认的“/”分隔符。表示把所有10替换成100。

f) 选定行的范围:逗号

g) $ sed -n '/test/,/check/p' example-----所有在模板test和check所确定的范围内的行都被打印。

h) $ sed -n '5,/^test/p' example-----打印从第五行开始到第一个包含以

test开始的行之间的所有行。

i) $ sed '/test/,/check/s/$/sed test/' example-----对于模板test和west之间的行,每行的末尾用字符串sed test替换。

j) $ sed 's/^\(.\)/\u\1/' example ---------将每行开头的第一个字母换成大写

3) 编辑:e命令

a) $ sed -e '1,5d' -e 's/test/check/' example-----(-e)选项允许在同一行里执行多条命令。如例子所示,第一条命令删除1至5行,第二条命令用check替换test。命令的执 行顺序对结果有影响。如果两个命令都是替换命令,那么第一个替换命令将影响第二个替换命令的结果。

b) $ sed --expression='s/test/check/' --expression='/love/d' example-----一个比-e更好的命令是--expression。它能给sed表达式赋值。

4) 从文件读入:r命令

a) $ sed '/test/r file' example-----file里的内容被读进来,显示在与test匹配的行后面,如果匹配多行,则file的内容将显示在所有匹配行的下面。

b) 写入文件:w命令

c) $ sed -n '/test/w file' example-----在example中所有包含test的行都被写入file里。

5) 追加命令:a命令

a) $ sed '/^test/a\\--->this is a example' example<-----'this is a example'被追加到以test开头的行后面,sed要求命令a后面有一个反斜杠。

6) 插入:i命令

a) $ sed '/test/i\\

b) new line

c) -------------------------' example

d) 如果test被匹配,则把反斜杠后面的文本插入到匹配行的前面。

7) 下一个n命令

a) $ sed '/test/{ n; s/aa/bb/; }' example-----如果test被匹配,则移动到匹配行的下一行,替换这一行的aa,变为bb,并打印该行,然后继续。

8) 变形:y命令

a) $ sed '1,10y/abcde/ABCDE/' example-----把1--10行内所有abcde转变为大写,注意,正则表达式元字符不能使用这个命令。

合集下载

Linux命令高级技巧使用sed进行模式匹配和替换

Linux命令高级技巧使用sed进行模式匹配和替换

Linux命令高级技巧使用sed进行模式匹配和替换

Linux命令高级技巧:使用sed进行模式匹配和替换

sed(stream editor)是Linux操作系统中一款十分强大的流式编辑器。它可以实现对文本进行各种操作,包括模式匹配和替换。本文将介绍sed命令的使用方法,帮助读者学习如何利用sed进行高级的模式匹配和替换。

一、基本概述

sed命令的基本用法是:sed 's/模式/替换内容/g' 文件名

其中,s表示substitute(替换),/模式/表示要查找的内容模式,替换内容表示要替换为的内容,g表示全局替换。

二、模式匹配

1. 正则表达式

在sed命令中,可以使用正则表达式作为模式进行匹配。例如,要匹配包含单词"apple"的行,可以使用以下命令:

sed '/apple/p' 文件名

其中,/apple/表示要匹配的模式,p表示打印匹配的行。

2. 匹配多个模式 sed命令还支持同时匹配多个模式,并对匹配到的行进行不同的处理。例如,要匹配包含单词"apple"和"banana"的行,并将其替换为"fruit",可以使用以下命令:

sed '/apple/s/apple/banana/g' 文件名

其中,/apple/表示第一个模式,s表示替换,apple表示要替换的内容,banana表示替换为的内容,g表示全局替换。

3. 匹配行号

sed命令还支持根据行号进行模式匹配。例如,要匹配第3行,并将其替换为"hello",可以使用以下命令:

sed '3s/.*/hello/' 文件名

其中,3s表示匹配第3行,.*表示匹配任意字符,hello表示替换为的内容。

三、模式匹配与替换

1. 模式匹配后替换

sed命令还可以通过模式匹配的结果来进行具体的替换操作。例如,要将包含单词"apple"的行替换为"banana",可以使用以下命令:

sed -n '/apple/{s/apple/banana/g;p}' 文件名

linux Sed命令详解

linux Sed命令详解

linux sed命令详解

1. Sed简介

sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。以下介绍的是Gnu版本的Sed 3.02。

2. 定址

可以通过定址来定位你所希望编辑的行,该地址用数字构成,用逗号分隔的两个行数表示以这两行为起止的行的范围(包括行数表示的那两行)。如1,3表示1,2,3行,美元符号($)表示最后一行。范围可以通过数据,正则表达式或者二者结合的方式确定 。

3. Sed命令

1) 调用sed命令有两种形式:

2) sed [options] 'command' file(s)

3) sed [options] -f scriptfile file(s)

4) a\ 在当前行后面加入一行文本。

5) b lable 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。

6) c\ 用新的文本改变本行的文本。

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

8) D 删除模板块的第一行。

9) i\ 在当前行上面插入文本。

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

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

13) G 获得内存缓冲区的内容,并追加到当前模板块文本的后面。

Linux命令进阶使用sed进行正则表达式匹配与替换

Linux命令进阶使用sed进行正则表达式匹配与替换

Linux命令进阶使用sed进行正则表达式匹配与替换

sed(Stream Editor)是Unix/Linux系统中一种常用的命令行文本编辑工具,它可以在对数据进行流式处理时,根据用户指定的规则进行字符串匹配与替换。sed支持正则表达式,使得在处理文本时,更加灵活高效。本文将介绍如何使用sed进行正则表达式匹配与替换,以及一些常见的用法和实例。

一、sed命令概述

sed命令是Linux系统中的一个强大的文本处理工具,常用于从文件或者标准输入流中读取数据,并按照指定的规则进行处理。它的基本语法为:

```

sed [options] 'command' file(s)

```

其中,options是可选的参数,command是sed的操作命令,file(s)表示要处理的文件。sed命令可以直接在命令行中使用,也可以将命令写入一个脚本文件中进行批量处理。

二、sed命令选项

sed命令有许多选项,下面介绍一些常用的选项:

1. -n:只打印经过sed命令处理后的结果,不输出其他内容。 2. -i:直接修改原文件,而不是打印结果到标准输出。

3. -e:指定多个命令,用分号分隔。

4. -r:启用扩展正则表达式。

5. -f file:从指定的文件中读取sed命令。

三、sed基本操作命令

1. p:打印匹配行。

2. d:删除匹配行。

3. s/pattern/replacement/g:替换匹配的文本。

4. i:在指定行之前插入文本。

5. a:在指定行之后追加文本。

四、使用sed进行正则表达式匹配与替换

sed命令的最常见用法是进行字符串匹配与替换。下面介绍一些常用的正则表达式匹配与替换操作:

1. 使用sed进行简单的字符串替换

假设我们有一个文件file.txt,内容如下:

```

Hello, World!

``` 我们可以通过下面的命令使用sed进行简单的字符串替换:

```

sed 's/Hello/Hi/' file.txt

linuxsed命令详解(推荐)

linuxsed命令详解(推荐)

linuxsed命令详解(推荐)

概述

sed命令是⼀个⾯向字符流的⾮交互式编辑器,也就是说sed不允许⽤户与它进⾏交互操作。sed是按⾏来处理⽂本内容的。在

shell中,使⽤sed来批量修改⽂本内容是⾮常⽅便的。

sed命令的选项

sed [选项] [动作]

选项与参数:

-n :使⽤安静(silent)模式。在⼀般 sed 的⽤法中,所有来⾃ STDIN 的数据⼀般都会被列出到终端上。但如果加上 -n 参数

后,则只有经过sed 特殊处理的那⼀⾏(或者动作)才会被列出来。-e :直接在命令列模式上进⾏ sed 的动作编辑;

-f :直接将 sed 的动作写在⼀个⽂件内, -f filename 则可以运⾏ filename 内的 sed 动作;

-r :sed 的动作⽀持的是延伸型正规表⽰法的语法。(默认是基础正规表⽰法语法)

-i :直接修改读取的⽂件内容,⽽不是输出到终端。

function:

a :新增⾏, a 的后⾯可以是字串,⽽这些字串会在新的⼀⾏出现(⽬前的下⼀⾏)

c :取代⾏, c 的后⾯可以接字串,这些字串可以取代 n1,n2 之间的⾏

d :删除⾏,因为是删除,所以 d 后⾯通常不接任何参数,直接删除地址表⽰的⾏;

i :插⼊⾏, i 的后⾯可以接字串,⽽这些字串会在新的⼀⾏出现(⽬前的上⼀⾏);

p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n ⼀起运⾏

s :替换,可以直接进⾏替换的⼯作,通常这个 s 的动作可以搭配正规表⽰法,例如 1,20s/old/new/g ⼀般是替换符合条件的字

符串⽽不是整⾏

⼀般function的前⾯会有⼀个地址的限制,例如 [地址]function,表⽰我们的动作要操作的⾏。下⾯我们通过具体的例⼦直观的

看看sed的使⽤⽅法。

删除⾏

//test.txt 内容如下

11 aa

22 bb

33 cc

23 dd

55 2e

sed '1,2d' test.xx

输出:

33 cc

linux sed命令详解

linux sed命令详解

linux sed命令詳解

1. Sed簡介

sed 是一種在線編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成後,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重複,直到文件末尾。文件內容並沒有 改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件;簡化對文件的反複操作;編寫轉換程序等。以下介紹的是Gnu版本的Sed 3.02。

2. 定址

可以通過定址來定位你所希望編輯的行,該地址用數字構成,用逗號分隔的兩個行數表示以這兩行為起止的行的範圍(包括行數表示的那兩行)。如1,3表示1,2,3行,美元符號($)表示最後一行。範圍可以通過數據,正則表達式或者二者結合的方式確定 。

3. Sed命令

1) 調用sed命令有兩種形式:

2) sed [options] 'command' file(s)

3) sed [options] -f scriptfile file(s)

4) a\ 在當前行後面加入一行文本。

5) b lable 分支到腳本中帶有標記的地方,如果分支不存在則分支到腳本的末尾。

6) c\ 用新的文本改變本行的文本。

7) d 從模板塊(Pattern space)位置刪除行。

8) D 刪除模板塊的第一行。

9) i\ 在當前行上面插入文本。

10) h 拷貝模板塊的內容到內存中的緩沖區。

11) H 追加模板塊的內容到內存中的緩沖區

12) g 獲得內存緩沖區的內容,並替代當前模板塊中的文本。

13) G 獲得內存緩沖區的內容,並追加到當前模板塊文本的後面。

linux之sed命令详解

linux之sed命令详解

linux之sed命令详解

sed是⼀个⾮交互式⽂本编辑器,它可以对⽂本⽂件和标准输⼊进⾏编辑,标准输⼊可以来⾃键盘输⼊,⽂件重定向,字符串,变量,或者

是管道的⽂本。并将其复制到缓冲区,然后读取命令⾏的命令,对此命令要求的⾏号进⾏编辑。

⽤法:

sed共有三种⽤法:

①直接在命令⾏中使⽤

sed [选项] 'sed命令' 输⼊⽂件

②将sed命令写⼊脚本⽂件中,使⽤sed命令调⽤

sed [选项] -f sed脚本⽂件 输⼊⽂件

③将sed命令写⼊脚本⽂件中,并设置为可执⾏

./sed 脚本⽂件 输⼊⽂件

其中第③种的脚本⽂件中需要使⽤#!符号开头。

sed常⽤的选项

-n:不打印所有的⾏到标准输出,只输出那些被命令影响到的⾏

-e:表⽰将下⼀个字符串解析为sed编辑命令,如果只有⼀个编辑命令,则-e可以省略

-f:表⽰正在调⽤sed脚本⽂件

-r:表⽰⽀持延伸型的正则表⽰法(默认只⽀持基础正则表⽰法)

-i:直接修改读取的⽂件内容,⽽不是通过屏幕输出。

sed命令

sed命令通常由两部分组成。⽂本定位和sed编辑命令。

⽂本定位对⽂本的部分⾏进⾏抽取,编辑命令对抽取的⾏进⾏编辑。

sed定位⽅式

sed提供了两种定位⽅式:

①通过⾏号,指定⼀⾏或者⾏号范围

②使⽤正则表达式

定位⽅式:

x:x为指定⾏号

x,y:指定从x到y的⾏号范围

/pattern/:查询包含模式的⾏

/pattern/pattern/:查询包含两个模式的⾏

x,/pattern/:从x⾏到patter模式匹配的⾏之间

x,y!:查询不包括x和y⾏号的⾏

sed编辑命令

p:打印匹配⾏

=:打印⽂件⾏号

a:在定位⾏号之后追加⽂本信息

i:在定位⾏号之前插⼊⽂本信息

d:删除定位⾏c:使⽤新⽂本替换⽂本⾏

s:使⽤替换模式替换相应模式

r:从另⼀个⽂件中读取⽂本

w:将⽂本写⼊到⼀个⽂件

y:变换字符

q:第⼀个模式匹配后退出

{}:在定位⾏执⾏命令组

n:读取下⼀个输⼊⾏,⽤下⼀个命令处理新的⾏

说了这么多,我们就先来体验⼀下:

Linux命令行使用技巧如何使用sed命令进行多行文本替换

Linux命令行使用技巧如何使用sed命令进行多行文本替换

在Linux系统中,命令行是一种常见且强大的工具,可以用于各种操作和处理文本。其中,sed命令是一种非常实用的文本处理工具,它可以帮助我们进行多行文本替换。本文将介绍如何使用sed命令进行多行文本替换,帮助读者更好地利用Linux命令行。

一、sed命令简介

sed命令是一种在Linux系统中用于处理文本的流编辑器。它主要用于对文本进行修改、替换、删除等操作。sed命令通过从输入文本中读取一行,并根据用户指定的规则进行处理,最后将处理结果输出。在处理过程中,sed命令可以基于行号、正则表达式等进行定位和处理。

二、sed命令的基本语法

sed命令的一般语法如下:

sed 's/old_text/new_text/g' file

其中,s表示替换操作(substitute),old_text表示需要被替换的文本,new_text表示替换后的文本,g表示全局替换。file表示待处理的文件名。

三、使用sed命令进行多行文本替换 有时候,我们需要对多行文本进行替换操作。sed命令的默认行为是逐行处理文本内容,所以要进行多行替换,我们需要指定一些额外的操作。以下是一些常用的sed命令选项和技巧:

1. 多行替换的前提条件

在使用sed命令进行多行替换之前,我们需要将待处理的多行文本保存到一个文件中,以便于sed命令进行操作。假设我们有一个文件名为text.txt,其中包含多行文本。

2. 使用sed命令进行多行替换

下面是一个简单的示例,展示了如何使用sed命令进行多行文本替换:

sed '/start_pattern/,/end_pattern/s/old_text/new_text/g' text.txt

其中,start_pattern和end_pattern分别表示多行文本的起始和结束位置,old_text和new_text分别表示需要进行替换的文本和替换后的文本。替换操作仅在start_pattern和end_pattern之间生效。

linux中的sed命令用法

linux中的sed命令用法

Sed是一种用于文本处理的流编辑器,可用于编辑或替换大量文本。其用法如下:

1. 替换操作

格式:s/搜索模式/替换模式/g

示例:将文件file.txt中的所有‘hello’替换为‘你好’

```

sed -i 's/hello/你好/g' file.txt

```

2. 删除操作

格式:d

示例:删除文件file.txt中包含‘hello’的所有行

```

sed -i '/hello/d' file.txt

```

3. 插入操作

格式:i\插入内容

示例:在文件file.txt的每一行前插入‘start’一行文字

```

sed -i 'i\start' file.txt

```

4. 追加操作

格式:a\追加内容

示例:在文件file.txt的每一行后追加‘end’一行文字

```

sed -i 'a\end' file.txt

```

5. 行号定位 格式:num action

示例:在文件file.txt的第2行后追加‘new’一行文字

```

sed -i '2a\new' file.txt

```

linux下sed命令详解

linux下sed命令详解

sed:Stream Editor⽂本流编辑,sed是⼀个“⾮交互式的”⾯向字符流的编辑器。能同时处理多个⽂件多⾏的内容,可以不对原⽂件改动,把整个⽂件输⼊到

屏幕,可以把只匹配到模式的内容输⼊到屏幕上。还可以对原⽂件改动,但是不会再屏幕上返回结果。

sed命令的语法格式:

sed的命令格式: sed [option] 'sed command'filename

sed的脚本格式:sed [option] -f 'sed script'filename

sed命令的选项(option):

-n :只打印模式匹配的⾏

-e :直接在命令⾏模式上进⾏sed动作编辑,此为默认选项

-f :将sed的动作写在⼀个⽂件内,⽤–f filename 执⾏filename内的sed动作

-r :⽀持扩展表达式

-i :直接修改⽂件内容

sed在⽂件中查询⽂本的⽅式:

1)使⽤⾏号,可以是⼀个简单数字,或是⼀个⾏号范围

xx为⾏号

x,y表⽰⾏号从x到y

/pattern查询包含模式的⾏

/pattern /pattern查询包含两个模式的⾏

pattern/,x在给定⾏号上查询包含模式的⾏

x,/pattern/通过⾏号和模式查询匹配的⾏

x,y!查询不包含指定⾏号x和y的⾏

2)使⽤正则表达式、扩展正则表达式(必须结合-r选项)

^锚点⾏⾸的符合条件的内容,⽤法格式"^pattern"

$锚点⾏⾸的符合条件的内容,⽤法格式"pattern$"

^$空⽩⾏

.匹配任意单个字符

*匹配紧挨在前⾯的字符任意次(0,1,多次)

.*匹配任意长度的任意字符

\?匹配紧挨在前⾯的字符0次或1次

\{m,n\}匹配其前⾯的字符⾄少m次,⾄多n次

\{m,\}匹配其前⾯的字符⾄少m次

\{m\}精确匹配前⾯的m次\{0,n\}:0到n次

\

\>锚点词尾,⽤法格式:\>pattern

\单词锚点

分组,⽤法格式:pattern,引⽤\1,\2

[]匹配指定范围内的任意单个字符

linux中sed详细用法

sed 是 Stream Editor 的缩写,它是一种流编辑器,用于对文本进行过滤和转换。sed

命令在 Linux 中广泛使用,它可以执行包括查找和替换、插入和删除行、转换数据等在内的多种文本操作。

下面是 sed 的一些基本用法:

基本语法

bash

sed [选项] '命令' 文件...

选项:用于指定 sed 的执行方式,如 -n 用于静默模式,只输出指定命令处理后的结果。

命令: sed 执行的具体操作,如 's/old/new/g' 用于全局替换 old 为 new。

文件...:指定需要处理的文件,可以是一个或多个文件。

常用命令

s/pattern/replacement/:替换功能,其中 pattern 是要被替换的模式,replacement 是要替换成的内容。

g:全局替换,将所有匹配的 pattern 替换为 replacement。

i:忽略大小写。

例子:sed 's/old/new/g' filename 将文件 filename 中所有 old 替换为 new。

p:打印,输出匹配到的行。例子:sed 'p' filename 将输出文件 filename 中所有匹配的行。

d:删除,删除匹配到的行。例子:sed 'd' filename 将删除文件 filename 中所有匹配的行。

a:追加,在匹配行的后面追加文本。例子:sed 'a\\newline' filename 在文件 filename

中所有匹配行的后面添加一个新行。

i:插入,在匹配行的前面插入文本。例子:sed 'i\\newline' filename 在文件 filename

中所有匹配行的前面插入一个新行。

c:替换,直接替换匹配到的行。例子:sed 'c\\newline' filename 将文件 filename 中所有匹配的行替换为一个新的行。

r:读入文件,将指定文件的内容读入并插入到匹配行的位置。例子:sed 'r additional_file'

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