Linux中的sed详解
Sed简介
Sed取各种内容 Stream Editor 流式编辑器 又称行编辑器每次只编辑一行。Sed工作是在“模式空间”中进行的并不操作源文件。对源文件无危害。
Sed使用格式
sed [-nefri] ‘command’ 输入文本
sed使用参数
-n 使用安静(silent)模式。在一般 sed 的用法中所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-e 直接在命令列模式上进行 sed 的动作编辑
-f 直接将 sed 的动作写在一个文件内 -f filename 则可以运行 filename 内的 sed 动作
-r sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)
-i 直接修改读取的文件内容而不是输出到终端。
动作说明 [n1[,n2]]function
n1, n2 不见得会存在一般代表『选择进行动作的行数』举例来说如果我的动作是需要在 10 到 20 行之间进行的则『 10,20[动作行为] 』
function
a 新增 a 的后面可以接字串而这些字串会在新的一行出现(目前的下一行)
c 取代 c 的后面可以接字串这些字串可以取代 n1,n2 之间的行
d 删除因为是删除啊所以 d 后面通常不接任何咚咚
i 插入 i 的后面可以接字串而这些字串会在新的一行出现(目前的上一行)
p 列印亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行
s 取代可以直接进行取代的工作哩通常这个 s 的动作可以搭配正规表示法例如 1,20s/old/new/g
企业面试题
请执行命令取出 linux 中 eth0 的 IP 地址请用cut有能力者也可分别用awksed命令答。
用grep命令实现
用cut命令来实现
用awk来实现
[root@localhost ~]# ifconfig eth0|grep "inet addr"|awk -F ":" '{print $2}'
192.168.1.49 Bcast
[root@localhost ~]# ifconfig eth0|grep "inet addr"|awk -F ":" '{print $2}'|awk '{print $1}'
192.168.1.49
[root@localhost ~]# ifconfig eth0|grep "inet addr"|awk -F "[: ]" '{printf $13}'
192.168.1.49
[root@localhost ~]# ifconfig eth0|grep "inet addr"|awk -F "[: ]+" '{printf $4}'
192.168.1.49
[root@localhost ~]# ifconfig eth0|awk -F "[: ]+" 'NR==2 {printf $4}'
192.168.1.49
④sed基础正则替换语法
处理技巧
处理需要的目标获取的字符串如上文的ip前面的字符串一般用以……开头^.*来匹配开头匹配的结尾写上实际的字符如“^.*addr:”表达式就匹配“ inet addr:”
而处理需要的目标后的内容一般在匹配的开头写上实际的字符而结尾是用以……结尾(.*$)来匹配。如Bcast:.*$部分表示匹配“ Bcast:192.168.1.255 Mask:255.255.255.0”
取MAC地址
此题是处理目标前的内容所以用“^.*HWaddr”匹配“eth0 Link encap:Ethernet HWaddr”。
[root@localhost ~]# ifconfig eth0|sed -n 's#^.*addr:\(.*\) BCAST.*$#\1#gp'
Sed小括号分组功能
实例
Sed命令替换功能小结
替换一行中的某部分
格式sed 's/要替换的字符串/新的字符串/g' 要替换的字符串可以用正则表达式
[root@localhost ruby] # sed -n '/ruby/p' ab | sed 's/ruby/bird/g' #替换ruby为bird
[root@localhost ruby] # sed -n '/ruby/p' ab | sed 's/ruby//g' #删除ruby
插入
[root@localhost ruby] # sed -i '$a bye' ab #在文件ab中最后一行直接输入"bye"
[root@localhost ruby]# cat ab
Hello!
ruby is me,welcome to my blog.
end
bye
删除匹配行
sed -i '/匹配字符串/d' filename 注若匹配字符串是变量则需要“”而不是‘’。记得好像是
替换匹配行中的某个字符串
sed -i '/匹配字符串/s/替换源字符串/替换目标字符串/g' filename
转载于:https://blog.51cto.com/huyaping/1757990
Linux中的sed详解相关推荐
- Linux中iptraf命令详解(IP局域网监控工具)
2019独角兽企业重金招聘Python工程师标准>>> Linux中iptraf命令详解(IP局域网监控工具) 发布时间:2017-12-27 20:46:03 作者:佚名 ...
- Linux中etc目录详解
Linux中etc目录详解 /etc目录 包含很多文件.许多网络配置文件也在/etc 中. /etc/rc or/etc/rc.d or/etc/rc*.d 启动.或改变运行级时运行的sc ...
- linux中create命令详解,linux中 pmap 命令详解
通过查看帮助,返回了如下信息: Usage: pmap [options] pid [pid ...] Options: -x, --extended show details -X show eve ...
- linux中mkdir命令含义,Linux中mkdir命令详解
Linux中mkdir命令详解 linux mkdir用来创建目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 1. 新建一个文件夹 one 2. 新建三个 ...
- Linux中fork()函数详解
Linux中fork()函数详解 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事, ...
- linux中dd命令详解,Linux中DD命令详解
Linux中DD命令详解 1.dd命令简介 功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换.可以用该命令实现DOS下的diskcopy命令的作用.先用dd命令把软盘上的 ...
- linux pmap命令,linux中 pmap 命令详解
通过查看帮助,返回了如下信息: Usage: pmap [options] pid [pid ...] Options: -x,--extended show details -X show even ...
- linux 中 sigaction 函数详解
linux 中 sigaction 函数详解 一.函数原型 sigaction 函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作) int sigaction(int signum, ...
- linux 修改用户dir,linux中dir命令详解
在linux系统下dir命令的功能和ls命令差不多,主要是用以查看目录.文件权限等详细信息.下面由学习啦小编整理了linux中dir命令的详细解释,希望对你有帮助. linux中dir命令的详细解释 ...
最新文章
- 虚拟机上SourceInsight访问Linux系统的代码
- Scala 键盘录入对象StdIn/特质/伴生对象
- AUTOSAR从入门到精通100讲(三十九)-AUTOSAR 通信服务-Com模块两部曲-概念详解
- 第三十七期:如果你这样回答“什么是线程安全”,面试官都会对你刮目相看
- SpringBoot 过滤器、拦截器、监听器对比及使用场景!
- python人脸识别截图_Python OpenCV调用摄像头检测人脸并截图
- 米酷影视直播二开全修复版增加在线充值影视资源网站源码
- Agent监控软件在IT工作中的应用
- 遊戲是這樣寫成的 (第三篇: 簡單的遊戲框架)
- paip.eclipse忽然启动报错的解决
- 【树上分块】【dfs序】2018沈阳网络赛 —— J题
- 速达5000维护服务器,财务软件速达5000为什么连不上服务器
- 江西省萍乡市谷歌高清卫星地图下载
- 图像处理RIP软件,图像色彩管理,数字喷墨打印技术
- Java实现 蓝桥杯VIP 算法训练 调和数列
- 虾米音乐关停:网友泪崩 一代人的青春落幕
- VMware下载与安装教程(详细)
- windo10系统哪个版本运行最快呢?
- 统计输入字符串中大写字母、小写字母、阿拉伯数字个数和特殊符号的个数
- 一文详解像素、DPI、分辨率之间的关系
热门文章
- mysql 负载 查看_Mysql-命令查询当前正在负载运行的SQL语句
- java smtp 内嵌图片,SMTP 发送内嵌图片 邮件
- python小课堂25_python小课堂-循环
- Centos7 Docker Compose部署mysql5.7
- LeetCode—笔记—51、N皇后——递归回溯,个人思路,简单易懂
- Android 项目结构说明
- 解压版mysql安装服务失败怎么办_mysql-8.0.17解压版安装步骤及MySQL服务无法启动问题的解决办法...
- Python开发基础总结之模块+日志+自省
- php mysql cpu100_MySQL服务器进程CPU占用100%的解决方法
- html5通html5通,HTML5 history详解