前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux sed命令使用

linux sed命令使用

原创
作者头像
堕落飞鸟
修改2023-03-28 16:30:45
3.8K0
修改2023-03-28 16:30:45
举报
文章被收录于专栏:飞鸟的专栏

sed是一款常用的文本处理工具,其名称来自于“stream editor”(流编辑器)。sed能够从标准输入或文件中读取文本,对文本进行编辑和转换,然后将结果输出到标准输出或指定的文件中。在Linux系统中,sed命令是一种非常强大和灵活的工具,可以帮助用户进行多种文本操作,如文本替换、删除、插入、打印等等。

下面是sed命令的详细介绍和使用示例:

命令格式

sed命令的基本格式为:

代码语言:javascript
复制
sed [选项] '动作' 文件名

其中,选项用于指定sed的行为,动作则是对文件进行的操作,文件名表示需要处理的文件。

常用选项

sed命令有一些常用选项,这里列举一些常用的:

  • -n:不自动打印模式空间的内容,只有在命令中显式指定打印时才会打印;
  • -i:在原文件中直接修改,而不是输出到标准输出或指定文件中;
  • -e:允许对文件进行多个编辑动作;
  • -r:启用扩展正则表达式。

常用操作

sed命令支持多种操作,这里介绍一些常用的操作:

1. 替换操作

sed命令可以用来替换文件中的文本。替换操作的格式为:

代码语言:javascript
复制
sed 's/原字符串/新字符串/g' 文件名

其中,s表示替换操作,/是分隔符,g表示全局替换。例如:

代码语言:javascript
复制
$ cat test.txt
hello world
hello sed
$ sed 's/hello/hi/g' test.txt
hi world
hi sed

上面的命令将文件中的所有hello替换为hi。如果省略g,则只替换每行中的第一个匹配项。

2. 删除操作

sed命令可以用来删除文件中的某些行。删除操作的格式为:

代码语言:javascript
复制
sed '行号d' 文件名

其中,d表示删除操作。例如:

代码语言:javascript
复制
$ cat test.txt
line 1
line 2
line 3
$ sed '2d' test.txt
line 1
line 3

上面的命令将文件中的第二行删除。可以通过指定多个行号来删除多行,例如:

代码语言:javascript
复制
$ sed '2d;3d' test.txt
line 1

上面的命令将文件中的第二行和第三行删除。

3. 插入操作

sed命令可以用来向文件中插入文本。插入操作的格式为:

代码语言:javascript
复制
sed '行号i\
插入的内容
' 文件名

其中,i表示插入操作。例如:

代码语言:javascript
复制
$ cat test.txt
line 1
line 2
$ sed '2i\
new line
' test.txt
line 1
new line
line 2

上面的命令将new line插入到文件的第二行之前。

4. 追加操作

sed命令可以用来向文件中追加文本。追加操作的格式为:

代码语言:javascript
复制
sed '行号a\
追加的内容
' 文件名

其中,a表示追加操作。例如:

代码语言:javascript
复制
$ cat test.txt
line 1
line 2
$ sed '2a\
new line
' test.txt
line 1
line 2
new line

上面的命令将new line追加到文件的第二行之后。

5. 打印操作

sed命令可以用来打印文件的某些行。打印操作的格式为:

代码语言:javascript
复制
sed '行号p' 文件名

其中,p表示打印操作。例如:

代码语言:javascript
复制
$ cat test.txt
line 1
line 2
line 3
$ sed '2p' test.txt
line 2

上面的命令将文件的第二行打印出来。可以通过指定多个行号来打印多行,例如:

代码语言:javascript
复制
$ sed -n '2p;3p' test.txt
line 2
line 3

上面的命令将文件的第二行和第三行打印出来,其中-n选项表示禁止自动打印模式空间的内容。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 命令格式
  • 常用选项
  • 常用操作
    • 1. 替换操作
      • 2. 删除操作
        • 3. 插入操作
          • 4. 追加操作
            • 5. 打印操作
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档