sed的一些使用技巧
一、当一个文件里有两行相同的内容,但这时只想修改第一行的内容或者第二行的内容,而不是全部修改,以下例子说明下:
1、修改匹配到第一行为port的内容(若要真修改前面记得-i):
[root support-files]$ cat test.txt
[client]
port =
user = mysql
socket =/data/mysql
[mysqld]
port =
[root support-files]$ sed "1,/port/{s#=.*#=3307#}" test.txt |grep port
port =
port =
2.修改匹配到的第二行内容,而不是第二行的内容,同样以port=3306为例:
[root support-files]$ cat test.txt
[client]
port =
user = mysql
socket =/data/mysql
[mysqld]
port =
[root support-files]$ sed '/port/{x;s/^/./;/^.\{2\}$/{x;s/3306/3307/;b};x}' test.txt |grep port
port =
port =
可以看到已经修改了吧,嘻^.^
二、有时想MySQL里binlog后面的几个数字取出来,下面以mysql-bin.000036为例:
[root mysql-5.5]$ echo "mysql-bin.000036" |cut -d . -f2 |sed 's/^0\+//' [root mysql-5.5]$ echo "mysql-bin.000036" |cut -d . -f2 |sed 's/^00*//g' [root mysql-5.5]$ echo "mysql-bin.000036" |cut -d . -f2 |sed 's/0*//g'
嘿嘿,用awk也能实现:
[root mysql-5.5]$ echo "mysql-bin.000036" |cut -d . -f2 |awk '{print $0+0}'
三、有时有一串数字,你可能用取前三位数,有时想取后三位数,反正想取前N个数或后N个数,都可以,下面举个例子:
取前3个数字:
[root ~]$ echo ""|sed 's/.*\(...\)/\1/'
取后3个数字:
[root ~]$ echo ""|sed 's/\(...\).*$/\1/'
四、有时一行有几个相同的字符,但有时只想修改第2个或者第3个时,如例子:
下面是把第二个test修改为Linux
[root ~]$ cat aa.sh
i am test a test,test is good boy test
this is a test
[root ~]$ sed 's/test/Linux/2' aa.sh
i am test a Linux,test is good boy test
this is a test
第三个test修改掉为Linux的例子
[root ~]$ cat aa.sh
i am test a test,test is good boy test
this is a test
[root ~]$ sed 's/test/Linux/3' aa.sh
i am test a test,Linux is good boy test
this is a test
|
作者:陆炫志 出处:xuanzhi的博客 http://www.cnblogs.com/xuanzhi201111 您的支持是对博主最大的鼓励,感谢您的认真阅读。本文版权归作者所有,欢迎转载,但请保留该声明。 |
sed的一些使用技巧的更多相关文章
- 【shell 大系】Linux Shell常用技巧
在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化.我们数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题.因此这段时间总结的有关Linux ...
- Linux Shell常用技巧(目录)
Linux Shell常用技巧(一) http://www.cnblogs.com/stephen-liu74/archive/2011/11/10/2240461.html一. 特殊文件: /dev ...
- Sed命令基础操作
sed用法的小技巧 (1)在查找范围时不需要用到替换,所以不用s; (2)当只需要打印被修改行时,可以使用-n 和 –p 选项,注意二者一定配合使用: 3种方式指定命令行上的多重指令 (1)用逗号分隔 ...
- 【转】十分有用的linux shell学习总结
在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化.我们 数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题.因此这段时间总结的有关Linux ...
- 整理sed实战修改多行配置技巧
老男孩老师有关sed实战技巧分享,来自课堂教学内容实战1.在指定行前插入两行内容,分别为oldboy和oldgirl.提示:被修改的文件内容必须要大于等于2行 1 sed -i '2 ioldboy\ ...
- 两个sed小技巧:sed "/变量/变量/"
两个sed小技巧 在写shell时使用sed处理一些输出,遇到两个问题,在网上找到了相应的解决办法,在此处备份一下. [ sed处理空字符 ] 空字符,它的ASCII码值为0.在sed中如何标识空字符 ...
- Linux生产环境上,最常用的一套“Sed“技巧
sed命令应用广泛,使用简单,是快速文本处理的利器.它其实没多少技巧,背诵.使用是最合适的学习渠道,属于硬技能.但它又很复杂,因为高级功能太多.本篇不去关注sed的高级功能,仅对常用的一些操作,进行说 ...
- sed 技巧
八.流编辑器sed sed ':a;N;$!ba;s/0.01/0.0001/g' file:a 创建一个labelaN 将下一行读入到模式空间$! 如果不是最后一行,ba跳转到label a处s/0 ...
- sed 技巧一例:特定位置插入
通过一例子熟悉 sed 的运用 下面命令是在修改 ~/fs/install/nzos.conf 文件, 并在 env 第一次出现的地方再添加一行 env LXC_EXTRA_PORT=5556 sed ...
随机推荐
- 初识elasticsearch_2(查询和整合springboot)
初始化 首先将官网所下载的json文件,放入到es中,采用如下命令: curl -H "Content-Type: application/json" -XPOST 'localh ...
- Java多线程与线程同步
六.多线程,线程,同步 ①概念: 并行:指两个或多个在时间同一时刻发生(同时发生) 并发:指两个或多个事件在同一时间段内发生 具体概念: 在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多 ...
- BZOJ2648 SJY摆棋子(KD-Tree)
板子题. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> # ...
- 【刷题】BZOJ 3495 PA2010 Riddle
Description 有n个城镇被分成了k个郡,有m条连接城镇的无向边. 要求给每个郡选择一个城镇作为首都,满足每条边至少有一个端点是首都. Input 第一行有三个整数,城镇数n(1<=n& ...
- 洛谷P4486 Kakuro
题意:你有一个棋盘,某些格子是限制条件,形如"从这里开始下面所有连续空格的和为a"或"从这里开始向右的所有连续空格之和为b"一个格子可以同时拥有两个限制条件. ...
- 浅谈跨平台框架 Flutter 的优势与结构
作者:个推iOS工程师 伊泽瑞尔 一.背景 目前,移动开发技术主要分为原生开发和跨平台开发两种.其中,原生应用是指在某个特定的移动平台上,使用平台所支持的开发工具和语言,直接调用系统提供的API所开发 ...
- C#处理MySql多个返回集的方法
本文实例讲述了C#处理MySql多个返回集的方法.分享给大家供大家参考.具体方法如下: 关于Mysql返回多个集java和Php的较多,但是C#的完整代码好像没见过,研究了一下做个封装以后用 做一个M ...
- unity常用小知识点
感觉自己抑郁变得更严重了,超级敏感,经常想崩溃大哭,睡眠超差,实在不想药物治疗,多看看书,多约约朋友,多出去走走. 来几句鸡汤吧,人一定要活得明白一点,任何关系都不要不清不楚,说不定最后受伤的就是自个 ...
- Hadoop基础-MapReduce的Combiner用法案例
Hadoop基础-MapReduce的Combiner用法案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编写年度最高气温统计 如上图说所示:有一个temp的文件,里面存放 ...
- S折交叉验证(S-fold cross validation)
S折交叉验证(S-fold cross validation) 觉得有用的话,欢迎一起讨论相互学习~Follow Me 仅为个人观点,欢迎讨论 参考文献 https://blog.csdn.net/a ...