sed工具使用
Posted lovelitao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sed工具使用相关的知识,希望对你有一定的参考价值。
语法
sed [-hnV][-e<script>][-f<script文件>][文本文件]
参数说明:
- -e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。
- -f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
- -h或--help 显示帮助。
- -n或--quiet或--silent 仅显示script处理后的结果。
- -V或--version 显示版本信息。
动作说明:
- a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
- c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
- d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
- i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
- p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
- s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
举例子
文件内容如下:
1.把/etc/passwd拷贝到root/test.txt文件。sed打印出所有行
说明:在正则表达式中,^表示行的开始,$表示行的结尾,空行可以用^$表示。
2.打印test.txt中的第三行到第五行
注意:要打印的数用单引号,如3到5 ‘3,5‘ 参数p在符号外面
3.打印test.txt中包含root的行
注意:需要打印的字符需要用转义符号/
4.删除test.txt中的第5行和后面的行
5.删除包含bash的行
6.将文本中的 root 替换为 toor
注意:参数[s]为替换的动作,参数[g]表示本行全局替换。本例若不添加,第一行只有第一个root替换成为toor
7.将文本中的/bin/bash替换成为/sbin/login
注意:包含一个路径需要更改时候,在路径的前后添加#号来区分
8.删除第7到第15行的所有数字删除
注意:在删除行的数字可以用 / 区分行号和数组
精华总结:
1.打印某行的使用动作参数p,行数用‘A,B‘表示。
2.打印某字符串时候用转义符号 / 区分字符串。sed -n ‘/root/‘p .xxx
3.在正则表达式中,行首用 ^ 表示,行尾用 $ 表示,(1,$)表示第一行到行尾。
4.删除行用参数d
5.替换用参数s,其中参数g表示本行全局替换。替换为某路径用#间隔, sed s‘#/bash/shell#bash/login‘g .xxx 。其中替换内容在单引号内
6.删除某行字符,sed ‘s/7,9/[0-9]//g‘ xxx
以上是关于sed工具使用的主要内容,如果未能解决你的问题,请参考以下文章