Linux26期 7月4日预习笔记
2020-02-05 08:05
176 查看
9.4/9.5 sed
一,打印某行
sed命令的格式为:sed -n 'n'p filename ,单引号内的n是一个数字,可以使用命令sed -n '1,$'p filename ,如下
去掉-n是有差异
要想把所有行打印出来,可以使用命令sed -n '1,$'p filename
#sed -n '1,$'p 文件名
另外,我们也可以指定一个区间打印,
#sed -n '1,3'p 文件名
二,打印包含某个字符串的行
这种用法类似于grep,在grep中使用特殊字符(如^,$, . , * 等)同样也能在sed中使用,如下
#sed -n '/^1/'p test.txt
#sed -n '/in$/'p test.txt
#sed -n '/r..o/'p test.txt
#sed -n '/ooo*/'p test.txt
sed命令加上-e选项可以实现多个行为,如下
#sed -e '1'p -e '/111/'p -n test.txt
三,删除某些行
示例命令如下:
#sed '1'd test.txt
#sed '1,3'd test.txt
#sed '/oot/'d test.txt
四,替换字符或者字符串
#sed '1,2s/ot/to/g' test.txt
上例中的参数s就表示替换的动作,参数g表示本行全局替换,如果不加g则替换本行出现的第一个,这个用法其实和vim的替换大同小异。
除了可以使用/作为分隔符外,我们还可以使用其他特殊字符,例如#和@。如下:
#sed 's#ot#to#g' test.txt
#sed 's@ot@to@g' test.txt
如何删除文档中所有的数字或者字母,示例命令如下
#sed 's/[0-9]//g' test,txt
[0-9]表示任意的数字。这里你也可以写成[a-zA-Z]或者[0-9a-zA-Z]
#sed 's/[a-zA-Z]//g' test.txt
五,调换两个字符串的位置
#sed 's/\(rot\)\(.*\)\(bash\)/\3\2\1' test.txt
小括号内的sed中属于特殊符号,必须在前面加转义字符\,替换时则写成类似\1,\2或\3的形式。上例中用()把想要替换的字符打包成了一个整体。有这个转义字符\,会让这个表达式看起来乱糟糟的,有个方法可以省略它
#sed -r 's/(rot) (.*)(bash)/\3\2\1/' test.txt
这个-r选项让这个表达式更加清晰了。除了调换两个字符串的位置,还常用sed在某一行前后增加指定内容。如下
#sed 's/^.*$/123$/123&/' test.txt
六,直接修改文件内容
#sed -i 's/ot/to/g' test.txt
这样就可以直接更改test.txt文件的内容了,但必须注意,在修改前最好先备份一下文件,一面改错。
转载于:https://my.oschina.net/u/3851620/blog/1840337
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Linux26期 7月11日预习笔记
- Linux26期 7月10日预习笔记
- Linux26期 7月9日预习笔记
- Linux26期 7月5日预习笔记
- 第十章 Linux日常运维管理(上)预习笔记加课堂笔记
- Linux进程管理预习笔记
- 预习第一章 初识Linux 笔记
- 第七章Linux软件包安装和卸载预习笔记加课堂笔记
- linux26期 7月6日学习笔记
- 《Linux》天影linux系列笔记一——linux常用命令详解:echo
- Linux学习笔记1.2
- Linux常用命令(1)笔记
- linux鸟哥视频学习笔记02
- 线程多线程百度公开课 - linux后台服务开发 - 笔记整理
- Linux 笔记(一)— Linux 历史
- Linux之命令学习笔记一
- linux内存操作--ioremap和mmap学习笔记
- Linux实战教学笔记01:计算机硬件组成与基本原理
- Linux安装VMware Tools笔记
- Linux基础学习笔记之如何获取帮助