linux shell 系列 sed 命令基本用法实例-①set命令选项的应用案例
2016-03-15 17:02
573 查看
首先先给大家看一个我写的程序的源码文件msg.c,就以这个文件作为演示,大家可以看到文件的部分内容及对应的行号:
图1
图2
可以看到图3中红色框选区的显示信息与图2 的第一行数据相同,为排除偶然性,继续给出其他验证案例
补充: -n的作用是除sed命令要求显示的行数据外其他的行数据都不显示,如果我们去掉 -n 参数,sed ‘1p’ msg.c 命令行将显示出msg.c全部的数据,而不是单单只针对 sed的'1p'命令去显示,显示结果图如下:
执行效果图如下:
通过上图与图1进行对比,sed -n ‘5.10p’ msg.c 所打印出来的数据与图1中的第五行到第十行数据完全相同。
执行效果图如下:
通过图1可以看到,msg.c 文件中只有第2行#include<stdio.h>中拥有与字符串“stdio”完全匹配的字段。
//查找匹配到字符串“stdio”的行数据和行号并打印出来
执行效果图如下:
通过图1可以看到,msg.c 文件中只有第2行#include<stdio.h>中拥有与字符串“stdio.h”完全匹配的字段。
需要注意的是sed命令不支持同时携带多个编辑命令的用法,比如将sed -n -e '/stdio.h/p' -e ‘/stdio.h/=’ msg.c改写为sed -n '/stdio.h/p=' msg.c
这样的执行结果如下图所示:
所以如果想要执行多个编辑命令必须使用-e选项分别执行。
sed命令:sed '/stdio.h/a\look me !’ msg.c//查找stdio.h字符串匹配的行号并将“look
执行效果图如下:
需要注意的是a\的文本追加操作并不会改变文件本身的数据,只是将结果输出到标准输入上,源文件没有任何变化。
sed命令:sed '/stdio.h/a\look me !’ msg.c//查找stdio.h字符串匹配的行号并将“look
首先我们先写一个脚本文件 test.sed
然后给脚本添加执行权限
最后执行脚本文件
执行效果图如下:
由上图显示可以看出脚本的追加操作成功。
图1
①.以指定行号查看文件对应行的内容
终端输入sed命令: sed -n ‘1p’ msg.c //查找msg.c文件第一行内容图2
可以看到图3中红色框选区的显示信息与图2 的第一行数据相同,为排除偶然性,继续给出其他验证案例
补充: -n的作用是除sed命令要求显示的行数据外其他的行数据都不显示,如果我们去掉 -n 参数,sed ‘1p’ msg.c 命令行将显示出msg.c全部的数据,而不是单单只针对 sed的'1p'命令去显示,显示结果图如下:
②.以行区间查看文件对应行的内容
sed命令:sed -n '5,10p' msg.c //查找msg.c文件中的第5行到第10行的数据并打印出来执行效果图如下:
通过上图与图1进行对比,sed -n ‘5.10p’ msg.c 所打印出来的数据与图1中的第五行到第十行数据完全相同。
③.通过匹配字符串查看文件对应行的内容
sed命令:sed -n '/stdio/p' msg.c //查找匹配到字符串“stdio”的行数据并打印出来执行效果图如下:
通过图1可以看到,msg.c 文件中只有第2行#include<stdio.h>中拥有与字符串“stdio”完全匹配的字段。
④.通过-e选项执行多个sed命令
sed命令:sed -n -e '/stdio.h/p' -e ‘/stdio.h/=’ msg.c//查找匹配到字符串“stdio”的行数据和行号并打印出来
执行效果图如下:
通过图1可以看到,msg.c 文件中只有第2行#include<stdio.h>中拥有与字符串“stdio.h”完全匹配的字段。
需要注意的是sed命令不支持同时携带多个编辑命令的用法,比如将sed -n -e '/stdio.h/p' -e ‘/stdio.h/=’ msg.c改写为sed -n '/stdio.h/p=' msg.c
这样的执行结果如下图所示:
所以如果想要执行多个编辑命令必须使用-e选项分别执行。
⑤.通过a\命令将指定文本追加到指定行后面
sed命令:sed '/stdio.h/a\look me !’ msg.c//查找stdio.h字符串匹配的行号并将“look
me !”字符串追加到这一行的后面且打印出来
执行效果图如下:需要注意的是a\的文本追加操作并不会改变文件本身的数据,只是将结果输出到标准输入上,源文件没有任何变化。
⑥.通过-f选项调用sed脚本
sed命令:sed '/stdio.h/a\look me !’ msg.c//查找stdio.h字符串匹配的行号并将“look
me !”字符串追加到这一行的后面且打印出来
首先我们先写一个脚本文件 test.sed然后给脚本添加执行权限
最后执行脚本文件
执行效果图如下:
由上图显示可以看出脚本的追加操作成功。
相关文章推荐
- -bash: ./scripts/mysql_install_db: /usr/bin/perl: bad interpreter: No such file
- 在windows下编辑好Shell脚本,在Linux中运行
- shell 批量删除垃圾数据
- shell【分发系统】
- 一些Linux shell
- 一些Linux shell
- Linux修改Shell命令提示符及颜色
- Linux shell
- Linux shell 脚本小记
- shell命令-read
- linuxshell 系列 sed 命令基本用法
- git bash使用(markdown版)
- windows server 2008 R2服务器无法通过ShellClass获取mp3音乐时长
- 手机离线Monkey测试(shell语言版)
- Shell重定向
- shell脚本:利用7z备份git项目
- Linux shell用法和技巧(转)
- Ruby调用Linux操作系统shell命令
- HBase 常用Shell命令
- linux下shell显示-bash-4.1#不显示路径解决方法