首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >linux sed用法大全

linux sed用法大全

原创
作者头像
玖叁叁
发布于 2023-04-09 07:03:00
发布于 2023-04-09 07:03:00
9.7K00
代码可运行
举报
文章被收录于专栏:玖叁叁玖叁叁
运行总次数:0
代码可运行

Sed(Stream Editor)是一个流编辑器,用于文本转换。它可以从标准输入、文件或管道中读取文本,并将其输出到标准输出。Sed主要用于文件处理、文本替换、数据处理和格式化等方面。在本文中,我们将介绍 Sed 命令的一些常见用法和示例。

用 Sed 命令打印文件内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed -n 'p' filename

上述命令将打印 filename 文件的每一行。其中,-n 参数表示不输出任何未经编辑的文本行,p 表示打印当前行。

使用 Sed 命令进行文本替换

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed 's/pattern/replace/g' filename

上述命令将 filename 文件中所有匹配 pattern 的字符串替换为 replace。其中,g 表示全局替换。

用 Sed 命令删除文件中的某些行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed '/pattern/d' filename

上述命令将删除 filename 文件中所有包含 pattern 的行。

用 Sed 命令在文件中添加行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed '1i This is the first line.' filename

上述命令将在 filename 文件的第一行之前添加一行文本 This is the first line。

用 Sed 命令将多行文本合并成一行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed ':a;N;$!ba;s/\n/ /g' filename

上述命令将 filename 文件中的多行文本合并为一行。其中,:a、N、$!ba 用于将多行文本合并为一行,s/\n/ /g 用于将换行符替换为空格。

使用 Sed 命令将文本截取为指定长度

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed 's/\(.\{10\}\).*/\1/' filename

上述命令将 filename 文件中的每一行截取为 10 个字符,即只保留每行的前 10 个字符。

用 Sed 命令将文本转换为大写或小写

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' filename
sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/' filename

上述命令分别将 filename 文件中的文本转换为大写和小写。

使用 Sed 命令进行多行文本匹配和替换

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed '/start/,/end/ s/pattern/replace/g' filename

上述命令将 filename 文件中从 start 到 end 之间的所有行中匹配 pattern 的字符串替换为 replace。

用 Sed 命令从文件中提取特定行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed -n '3p' filename

上述命令将从 filename 文件中提取第三行的文本。

使用 Sed 命令将文本中的空格删除

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed 's/ //g' filename

上述命令将 filename文件中的所有空格都删除。其中,g 表示全局替换。

用 Sed 命令删除文件中的空白行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed '/^\s*$/d' filename

上述命令将删除 filename 文件中所有空白行。其中,^\s*$ 表示空白行。

使用 Sed 命令将文本文件按字母顺序排序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' filename | sed 's/ /\n/g' | sort | sed '/^$/d'

上述命令将 filename 文件中的所有单词按字母顺序排序。其中,-e 's/^[[:space:]]//' -e 's/[[:space:]]$//' 用于删除每行前后的空格,sed 's/ /\n/g' 用于将单词分开成多行,sort 用于排序,sed '/^$/d' 用于删除空行。

用 Sed 命令删除文件中的重复行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed -n 'G; s/\n/&&/; /^\([ -~]*\n\).*\n\1/d; s/\n//; h; P' filename

上述命令将删除 filename 文件中的所有重复行。

用 Sed 命令删除 HTML 标签

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed 's/<[^>]*>//g' filename

上述命令将删除 filename 文件中所有 HTML 标签。其中,<[^>]*> 表示匹配 HTML 标签。

使用 Sed 命令在文件中插入多行文本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sed -i '/pattern/r filename' file

上述命令将在 file 文件中包含 pattern 的行后插入 filename 文件中的文本。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验