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 ...
随机推荐
- java之不修改变量的数据类型的处理方式
- SSH & Git
SSH基本用法 SSH服务详解 work with git branch some tips for git setup and git config git and github ssh servi ...
- bzoj4458 GTY的OJ (优先队列+倍增)
把超级钢琴放到了树上. 这次不用主席树了..本来以为会好写一点没想到细节更多(其实是树上细节多) 为了方便,对每个点把他的那个L,R区间转化成两个深度a,b,表示从[a,b)选一个最小的前缀和(到根的 ...
- 【转】在windows中使用Intellij Idea时选择自定义的64位JVM
原文地址:https://www.iflym.com/index.php/code/201404190001.html 本文英文原文自:https://intellij-support.jetbrai ...
- POJ 1062 昂贵的聘礼(图论,最短路径)
POJ 1062 昂贵的聘礼(图论,最短路径) Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女 ...
- CF1027E Inverse Coloring
题意:n × n的矩阵,每个位置可以被染成黑/白色. 一种gay的染色是任意相邻两行的元素,每两个要么都相同,要么都不同.列同理. 一种gaygay的染色是一种gay的染色,其中没有哪个颜色的子矩阵大 ...
- (转)Maven学习总结(一)——Maven入门 安装使用
备注 转自: 孤傲苍狼 http://www.cnblogs.com/xdp-gacl/p/3498271.html 只为成功找方法,不为失败找借口! 1. Maven的基本概念 Maven(翻译为& ...
- adb logcat介绍
logcat命令语法: [adb] logcat [<option>] ... [<filter-spec>] ... adb logcat -c 清除所有以前的日志 adb ...
- IDE和SDK
像我这种不是专科班出来的,真的很多概念都不太清楚,今天来说说IDE和SDK 简单的来说: IDE(集成开发环境 Integrated Development Environment) 就是我们编写代码 ...
- 初识python面向对象编程
初识python面向对象编程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.面向过程的程序设计思想 #!/usr/bin/env python #_*_coding:utf-8 ...