linux sed n 1p,sed初学者实用说明-程序员宅基地

技术标签: linux sed n 1p  

例如,在多个系统、应用程序安装之后,我们往往需要对很多配置文件进行修改,用vi编辑器意味着耗费时间、重复劳动,而sed就可将我们从繁重的重复劳动中解放出来。

sed的调用方式:

1、sed [sed选项] 'sed命令' 要修改的文件

2、sed [sed选项] -f sed脚本 要修改的文件

3、sed脚本 [sed选项] 要修改的文件

这里仅介绍最常用的第一种方式

sed选项:仅列常用的

-i:直接修改源文件(不用这个选项的话无法直接修改,必须重定向到新文件,如果仅作为输出测试则不需此选项),还可将源文件修改前备份

sed -i.bak 's/123/234/' test.txt 将test.txt备份为test.txt.bak,然后将文件内行第一个出现的“123”替换为“234”

-e:多次编辑,例如先将所有的123替换为234,再将第7行前加#号注释

sed -i -e 's/123/234/g' -i -e '7 s/^/#/' test.txt

-f:指定sed脚本文件名

-n:取消默认的输出(不打印),用sed不加任何选项的话你会看到所有内容输出,并不是按照sed命令所限制的条件输出,那么配合“p”命令经可以过滤掉不符合条件的行,并显示出符合条件的行,例如

sed -n '查找所有包含字符123的行'p test.txt 或 sed -n '查找所有包含字符123的行p' test.txt

sed命令:这里可以使用正则表达式,如遇特殊字符,需用“\”来屏蔽其特殊含义,例如“\$”表示普通的字符$

x x为某行行号

x,y 例如2,5,从第2行到第5行

/val/ 查询包含“val”字符的行

/val1/val2/ 查询包含两个模式的行

val/,x 在给定行号的行上查询包含“val”的行

x,/val/ 通过行号和模式查询匹配的行

x,y! 不包含指定行号x,y的行

p 打印匹配的行

= 显示行号

a\ 在定位了的行之后附加内容

i\ 在定位了的行之后插入内容

d 删除定位的行,例如:2d 代表删除第2行

c\ 用新文本替换定位行的文本

s 替换,形式为:'s/查找的内容/替换的内容/'

g 进行全局替换,如不使用此选项将只对该行匹配到的第一个结果进行替换,该行下一个匹配的就不处理了。

...其他就不介绍了,百度搜下吧

实例学习:

test.txt文件内容为

The honeysuckle band played all night long for only $90

It was an evening of splendid music and company

Too bad the disco floor fell through at 23:10

The local nurse Miss P.Neave was in attendance

1、显示第2行的内容

sed -n '2p' test.txt

2、显示第1到3行的内容

sed -n '1,3'p test.txt

3、仅显示包含“disco”的行

sed -n '/disco/'p test.txt

4、显示包含“$”字符的行

sed -n '/\$/'p test.txt

5、显示以数字结尾的行,[0-9]是正则表达式 代表数字0到9;“$”表示行尾(“^”表示行首)

sed -n '/[0-9]$/'p test.txt

显示结果为:

The honeysuckle band played all night long for only $90

Too bad the disco floor fell through at 23:10

6、显示以数字结尾的行并显示以大写T为开头的行

sed -n -e '/^T/'p -e '/[0-9]$/'p test.txt

7、匹配任意字母、后跟任意字母的多次重复,并以“ing”结尾的行

sed -n '/.*ing/'p test.txt

8、第一行与最后一行

sed -n '1p' test.txt

sed -n '$p' test.txt

9、将“nurse”改为“little nurse”,“&”命令用来重新调用被替换的内容

sed -n 's/nurse/little &/p' test.txt

10、先将所有的123替换为234,再将第7行前加#号注释

sed -i -e 's/123/234/g' -i -e '7 s/^/#/' test.txt

11、将“--------”删除,将空行删除,将第一行和最后一行删除,并打印第一列

文件内容:

Database Size(MB) Date Created

------------------------------------------

mysql 2244 12/11/08

test 5632 12/11/08

(2 rows affected)

命令:

cat test.txt | sed 's/--*//g' | sed '/^$/d' | sed '$d' | sed '1d' | awk '{print $1}'

显示结果:

mysql

test

说明:

使用s/--*//g删除横线-------

使用/^$/d删除空行

使用$d删除最后一行

使用1d删除第一行

awk {print $1}打印第一列

12、一些杂项例子

^[0-9]表示行第一个字符为任意数字,例如“1asdf”;

^[0-9]*表示行首包含任意个数的数字,例如“1818asdf”

[0-9][0-9]*$表示行尾包含至少2个数字,例如“asdfasdf18”“asdf1818”

sed -i 's/^[0-9]*//g' test.txt 删除行首的任意数字

sed -i -e 's/^[0-9]*//g' -i -e 's/$/& passed/' test.txt 删除行首任意数字,并在每行结尾加上“ passed”

sed -i -e 's/^/#&' test.txt 给每行行首加上“#”注释

s/\.$//g 删除以句点结尾的行的句点

s/^[ ][ ]*// 删除行首的任意个空格

s/^.// 删除行首的第一个字符

s/^\/// 删除行首的“/”字符

s/SP\(..\)//g 删除字符“SP”以及紧跟其后的两个任意字符,“SPLLY”-->“Y”

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42524100/article/details/117643188

智能推荐

PHP 过滤多维数组中的空值_php array_filter 多维数组-程序员宅基地

文章浏览阅读3.9k次。/** * clearEmptyValue 清除多维数组里面的空值 * @param array $array * @return array * @author liuml * @DateTime 2018/12/3 11:27 */function array_filter_recursive(array &$arr){ if (empty($arr)) ..._php array_filter 多维数组

python爬虫高级知识_Python爬虫高级入门,Scrapy框架入门级案例实战!-程序员宅基地

文章浏览阅读99次。python install Twisted这里是运行成功的截图阅读目录系列文章目录前言一、编写Tenxun.py爬虫文件二、在item.py列表里进行设置数据表三、在pipelines.py列表里进行设置数据表四、在settings.py文件里配置爬虫五、运行爬虫总结前言随着我们对爬虫的了解,以前我们用requests可以请求进行解析网页可以提供我们想要的数据 ,现在我们网页的数据量很多的时候,..._datas = json.loads(response.text).get('ret_array', list()

OpenStack-Ocata版+CentOS7.6 云平台环境搭建 —9.块存储服务(cinder)部署配置-程序员宅基地

文章浏览阅读223次。块存储服务部署相关块存储服务(cinder)为实例提供块存储。存储的分配和消耗是由块存储驱动器,或者多后端配置的驱动器决定的。还有很多驱动程序可用:NAS/SAN,NFS,ISCSI,Ceph等。典型情况下,块服务API和调度器服务运行在控制节点上。取决于使用的驱动,卷服务器可以运行在控制节点、计算节点或单独的存储节点。1.块存储服务概览OpenStack块存储服务(cinder)为虚拟机添加持久..._怎么安装volumev3服务

使用Cesium.js加载3D模型_cesiumjs 加载模型-程序员宅基地

文章浏览阅读1.6w次,点赞4次,收藏31次。最近项目中用到室外三维模型与室内三维地图交互,室外三维模型的加载我们采用了cesium js来实现,在使用的过程中遇到了许多的问题,闲暇之余将其实现及遇到的问题记录下来,以备将来再用到时少走弯路。 一、开发环境准备 1、下载cesium js cesium js 下载地址 https:..._cesiumjs 加载模型

java是从( )语言改进重新设计_java笔试题答案详解-程序员宅基地

文章浏览阅读1.5k次。《java笔试题答案详解》由会员分享,可在线阅读,更多相关《java笔试题答案详解(8页珍藏版)》请在人人文库网上搜索。1、java笔试题以及答案详解 一一、单项选择题1. Java是从()语言改进重新设计。A. Ada B . C+ C . Pasacal D . BASIC答案:B2 .下列语句哪一个正确()A. Java程序经编译后会产生 machine codeB. Java程序经编译后会..._java是从( )语言改进重新设计。 a:ada b:c++ c:pasacal d:basic

K8s基础3——应用部署流程、服务编排、集群资源利用率、日志管理_部署leanote,使用kubectl apply命令部署yaml文件。-程序员宅基地

文章浏览阅读1k次。1、应用部署流程。2、服务编排,编写yaml文件,导入、导出yaml。3、安装metrics-server插件,查看集群资源使用率。4、日志管理工作机制。_部署leanote,使用kubectl apply命令部署yaml文件。

随便推点

vue element的tabs中使用echarts_在element的tabs里面放echarts-程序员宅基地

文章浏览阅读1.9k次,点赞3次,收藏3次。tabs中使用echarts,除了第一个图表能默认显示外,当tabs切换的时候,第一个之后的可能就显示不了了,如何解决?<template> <div> <el-row> <el-col :span="24"> <el-card> <el-tabs v-model="activeName" type="card" @tab-click="handleClick"> ._在element的tabs里面放echarts

【MATLAB】椭圆检测(Ellipse Detection)算法(含代码)-程序员宅基地

文章浏览阅读5.9w次,点赞73次,收藏282次。这里分享一篇文献中椭圆检测的方法(代码使用方法)。圆的物体,在实际拍摄中由于种种原因可能会变成椭圆,用圆拟合就不够准确。_椭圆检测

微信小程序手机号授权登录_微信手机号授权登录代码-程序员宅基地

文章浏览阅读5k次,点赞5次,收藏44次。微信小程序,手机号授权登录需求。_微信手机号授权登录代码

数据库实体间关联关系:一对一、一对多、多对多_实体之间的联系有一对一、一对多-程序员宅基地

文章浏览阅读8.7k次,点赞2次,收藏4次。数据库实体间有三种对应关系:一对一,一对多,多对多。 一对一关系示例:一个学生对应一个学生档案材料,或者每个人都有唯一的身份证编号。 一对多关系示例:一个学生只属于一个班,但是一个班级有多名学生。 多对多关系示例:多对多就是双向一对多,一个学生可以选择多门课,一门课也有多名学生。1.一对多关系处理: 通过学生和班级问题了解一对多:..._实体之间的联系有一对一、一对多

系统可靠性matlab,基于Matlab语言的系统可靠性仿真.pdf-程序员宅基地

文章浏览阅读619次。您所在位置:网站首页 > 海量文档&nbsp>&nbsp计算机&nbsp>&nbspmatlab基于Matlab语言的系统可靠性仿真.pdf3页本文档一共被下载:次,您可全文免费在线阅读后下载本文档。 下载提示1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。2.该文档所得..._幅值可靠性函数的模拟

c++中stringstream的str(““)以及clear()的用法_stringstream clear-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏3次。对于stringstream中清除函数的用法介绍区分。_stringstream clear

推荐文章

热门文章

相关标签