0

0

sed:小工具,大用处

蓮花仙者

蓮花仙者

发布时间:2025-07-09 11:56:01

|

440人浏览过

|

来源于php中文网

原创

linux环境中,除了常用的ll、ls、less等查看命令外,sed和awk是处理文本的强大工具。它们能够以简单的方式完成复杂的文本编辑任务。接下来,我将详细介绍sed和awk的使用方法。

sed是一个非常实用的文本处理工具,通常以行为单位进行操作,可以对数据进行替换、删除、新增和选取等操作。sed既可以处理标准输入,也可以处理文件,并将结果输出到标准输出或文件中。以下是sed的一般使用规则:

sed -nefri '动作命令' 文件或输入

参数说明:

  • -n:使用安静模式。通常,sed会将所有STDIN的资料输出到屏幕上,但加上-n后,只有经过sed特殊处理的行或动作才会被输出。
  • -e:直接在命令行模式上进行sed的动作编辑。
  • -f:将sed的动作命令写在一个文件中,使用-f filename可以执行该文件中的sed动作。
  • -r:支持扩展正则表达式语法(默认使用基础正则表达式语法)。
  • -i:直接修改读取的文件内容,而不是输出到屏幕。

动作命令:

  • a:新增,在当前行之后添加新行内容。
  • c:替换,用新内容替换指定范围内的行。
  • d:删除,通常不接任何参数,直接删除指定行。
  • g:全局,表示在行内全局执行动作,例如替换所有匹配的关键字。
  • i:新增,在当前行之前添加新行内容。
  • p:打印,通常与-n参数一起使用,输出选定的行。
  • s:替换,用于直接进行替换操作,常与正则表达式搭配使用。

新增与删除功能

sed可以根据行号进行删除操作。例如,列出文件内容并删除第2-5行:

sed:小工具,大用处

可以看到标准输出中少了第2-5行,最后一行可以用“$”表示。这里省略了-e参数,因为默认就是在命令行模式下操作。也可以根据关键字删除,例如删除包含“CHEN”的行:

sed:小工具,大用处

但此时文件内容并未被更改,若要删除原文件内容并保存,可以使用-i参数:

sed:小工具,大用处

注意,尽管前三行被删除,行号仍然从第一行开始,因为nl处理的是文件而不是标准输出。接下来,我们展示如何新增新行内容:

sed:小工具,大用处sed:小工具,大用处

可以明显看出ai两个新增命令的区别。可以通过“\+回车”来添加多行内容:

sed:小工具,大用处

Booltool
Booltool

常用AI图片图像处理工具箱

下载

替换与显示功能

sed的p命令可以根据行号显示内容,例如显示文件中的第5-7行:

sed:小工具,大用处

c命令可以进行整行内容替换,例如将文件第2-4行的重复内容替换为“reduplicates”:

sed:小工具,大用处

s命令可以查找关键字并进行替换,可以结合正则表达式使用。例如,将文件中所有的“:”替换为“;”:

sed:小工具,大用处

其中,g表示全局替换,即每一行中的所有匹配都进行替换。如果不加g,则只替换找到的第一个关键字:

sed:小工具,大用处

sed还可以直接处理文件,在处理多文库数据时,常需替换重复的barcode,如下所示:

sed:小工具,大用处

上面的例子中,第一条命令将替换结果保存为新文件,而后两条命令则直接修改原文件。其中,“^”表示只替换行首出现的关键字。

相关专题

更多
js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

510

2023.06.20

正则表达式不包含
正则表达式不包含

正则表达式,又称规则表达式,,是一种文本模式,包括普通字符和特殊字符,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式的文本。php中文网给大家带来了有关正则表达式的相关教程以及文章,希望对大家能有所帮助。

248

2023.07.05

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

741

2023.07.05

java正则表达式匹配字符串
java正则表达式匹配字符串

在Java中,我们可以使用正则表达式来匹配字符串。本专题为大家带来java正则表达式匹配字符串的相关内容,帮助大家解决问题。

213

2023.08.11

正则表达式空格
正则表达式空格

正则表达式空格可以用“s”来表示,它是一个特殊的元字符,用于匹配任意空白字符,包括空格、制表符、换行符等。本专题为大家提供正则表达式相关的文章、下载、课程内容,供大家免费下载体验。

351

2023.08.31

Python爬虫获取数据的方法
Python爬虫获取数据的方法

Python爬虫可以通过请求库发送HTTP请求、解析库解析HTML、正则表达式提取数据,或使用数据抓取框架来获取数据。更多关于Python爬虫相关知识。详情阅读本专题下面的文章。php中文网欢迎大家前来学习。

293

2023.11.13

正则表达式空格如何表示
正则表达式空格如何表示

正则表达式空格可以用“s”来表示,它是一个特殊的元字符,用于匹配任意空白字符,包括空格、制表符、换行符等。想了解更多正则表达式空格怎么表示的内容,可以访问下面的文章。

232

2023.11.17

正则表达式中如何匹配数字
正则表达式中如何匹配数字

正则表达式中可以通过匹配单个数字、匹配多个数字、匹配固定长度的数字、匹配整数和小数、匹配负数和匹配科学计数法表示的数字的方法匹配数字。更多关于正则表达式的相关知识详情请看本专题下面的文章。php中文网欢迎大家前来学习。

528

2023.12.06

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

65

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.4万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号