千家信息网

linux系统中如何使用sed命令

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,小编给大家分享一下linux系统中如何使用sed命令,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!ed是一个"非交互式的"面向字符流的编辑器。能同时处理多个文件多行的内容,可以不对原
千家信息网最后更新 2026年10月31日linux系统中如何使用sed命令

小编给大家分享一下linux系统中如何使用sed命令,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

ed是一个"非交互式的"面向字符流的编辑器。能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件输入到屏幕,可以把只匹配到模式的内容输入到屏幕上。还可以对原文件改动,但是不会再屏幕上返回结果。

sed语法

  • sed命令处理的内容是模式空间中的内容,而非直接处理文件内容。如果加上参数 i 则可直接修改文件内容
  • 示例:sed -i ‘s/原字符串/新字符串/’ /home/test.txt

sed [-nefr参数] [function] [filePath]

选项与参数描述
-n使用 silent 模式。在一般 sed 的用法中,输入的数据都会被输出到屏幕上。但如果加上 -n 参数后,则不会显示,如果有跟着 p 标志,被 sed 特殊处理的那一行会被列出来
-e直接在命令行界面上进行 sed 的动作编辑,执行多条子命令
-f将 sed 的动作写在一个文件内, -f filename 执行脚本文件的 sed 动作
-rsed 的动作支持的是延伸型正则表达式的语法
-i直接修改读取的文件内容

选项-n,加上-n选项后被设定为安静模式,也就是不会输出默认打印信息,除非子命令中特别指定打印 p 选项,则只会把匹配修改的行进行打印

---- 两行都打印出来 ----server11:~/test # echo -e 'hello \n world' | sed 's/hello/csc/'cscworld---- 一行也没打印 -----server11:~/test # echo -e 'hello \n world' | sed -n 's/hello/csc/'---- 打印了匹配行 -----server11:~/test # echo -e 'hello \n world' | sed -n 's/hello/csc/p'csc

选项-e,多条子命令连续进行操作

echo -e 'hello world' | sed -e 's/hello/csc/' -e 's/world/lwl/'结果:csc lwl

选项-i,直接修改读取的文件内容

server11:~/test # cat file.txthello worldserver11:~/test # sed 's/hello/lwl/' file.txtlwl worldserver11:~/test # cat file.txthello world---- 加上参数 i 可以直接修改文件内容----server11:~/test # sed -i 's/hello/lwl/' file.txtlwl worldserver11:~/test # cat file.txtlwl world

选项-f,执行文件脚本

sed.script脚本内容:s/hello/csc/s/world/lwl/------echo "hello world" | sed -f sed.script结果:csc lwl

选项-r,默认只能支持基本正则表达式,如果需要支持扩展正则表达式,需要加上 -r

echo "hello world" | sed -r 's/(hello)|(world)/csc/g'csc csc

function表达式:[n1[,n2]] function or /{pattern}/function

n1, n2 :可选项,一般代表"选择进行function处理的行数",举例来说,如果「function」是需要在 10 到 20 行之间进行的,则表示为 10,20 [function]如果需用正则表达式匹配字符串,则可用 /{pattern}/ 匹配

test.txt 内容111222333444----- 删除非第2第3行之间的所有行 ----------server11:~ # sed -i '2,3!d' test.txtserver11:~ # cat test.txt222333------ 正则表达式匹配 ------------server11:~ # echo 'clswcl.txt' | sed -nr '/.*/p'clswcl.txt  //  /{pattern}/ = /.*/

function 有以下这些选项[/yiji]

function描述
a新增:a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
i插入:i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)
c取代:c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行
d删除:因为是删除啊,所以 d 后面通常不接任何东西
p打印:亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行
s取代:可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正则表达式!例如:1,20 s/old/new/g

function:-a,行后插入新行

sed -i '/特定字符串/a 新行字符串' fileName

function:-i,行前插入新行

sed -i '/特定字符串/i 新行字符串' fileName

function:-c,修改指定内容行

sed -i '/特定字符串/c csc lwl' fileName

function:-d,删除特定字符串

sed -i '/特定字符串/d' fileName

sed s子命令: s/{pattern}/{replacement}/{flags}

  • {pattern}是正则表达式
  • 如果{pattern}存在分组,{replacement}中的"\n"代表第n个分组,"&"代表整个匹配的字符串。详情看示例
  • flags的参数如下
flags描述
n可以是1-512,表示第n次出现的情况进行替换
g全局更改
p打印模式空间的内容
w file写入到一个文件file中

示例

server11:~ # echo -e 'hello 1112 world' | sed -r 's/([a-z]+)( [0-9]+ )([a-z]+)/&/'hello 1112 worldserver11:~ # echo -e 'hello 1112 world' | sed -r 's/([a-z]+)( [0-9]+ )([a-z]+)/\3\2\1/'world 1112 hello

看完了这篇文章,相信你对"linux系统中如何使用sed命令"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

内容 文件 字符 字符串 命令 表达式 参数 正则 一行 动作 模式 处理 屏幕 新行 之间 代表 示例 结果 脚本 支持 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网核心科技是什么 与互联网科技公司 互联网 科技创新 互联网科技英文 奇酷互联网络科技公司 互联网科技小额贷款 互联网科技美容 天扬科技互联网广告 科技伦理 互联网公司 汉立互联网科技有限公司联系电话 青岛中康互联网医疗科技有限公司 剑昆互联网络科技有限公司临桂 想开互联网科技公司怎么样 西安小鹰速贷互联网科技有限公司 上海京穆互联网科技有限公司 产业互联网科技服务公司 张召忠谈中国互联网科技 兰石爱特工业互联网科技分公司 陕西彩京云互联网科技有限公司 高科技和互联网的现代国家 科技与互联网 沃里互联网科技 广州紫鲸互联网科技 互联网科技公司有风险吗 互联网媒体平台算高科技产业 滨湖区互联网智能科技产品有哪些 银行科技岗属于互联网吗 广州梦谷互联网科技有限公司领导 唯美互联网科技 每日互联网科技新闻
0