linux系统中如何使用sed命令
发表于:2024-10-02 作者:千家信息网编辑
千家信息网最后更新 2024年10月02日,小编给大家分享一下linux系统中如何使用sed命令,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!ed是一个"非交互式的"面向字符流的编辑器。能同时处理多个文件多行的内容,可以不对原
千家信息网最后更新 2024年10月02日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 动作 |
-r | sed 的动作支持的是延伸型正则表达式的语法 |
-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安全错误
数据库的锁怎样保障安全
excel表格软件开发
财务软件开发工具官方正式版
2016重庆楼盘销售数据库
简单一点的软件开发工具
知网来源数据库是什么
网络安全事件发生时的风险增
怎么开一个电脑服务器
联系数据库在哪里
亚洲电视app无法连接服务器
联想t100c安装服务器系统
access数据库案例
南京学习软件开发价格
数据库报表计算学生人数
苹果手机sim无法连接服务器
中改数据库名的命令
传世道士宝宝数据库解释
网络安全教育知识50字
第三届第五空间网络安全大赛答案
300英雄更新服务器
服务器交换机配什么口
阴阳师那个平台服务器人多
石河子大学网络安全学院
数据库专题答案
网络技术支撑运营商
分布式数据库管理系统实践
当当网软件开发待遇
数据库桌面图标大全
服务器点磁盘管理不显示磁盘
希望之村服务器卡
网络安全与实施