六.Linux三剑客之sed命令

sed使用方式

1.在Shell中输入:

$ sed [选项] 'sed命令'  输入文件

脚本格式:

#!/bin/sed -f
sed命令

2.用sed -f命令调用sed脚本文件

$ sed [选项] -f sed脚本文件 输入文件

3.直接执行sed脚本文件

$ chmod u+x sed脚本文件
$ ./sed脚本文件 输入文件

命令选项及其意义

-n 不打印所有的行到标准输出
-e 讲下一个字符解析为sed命令
-f 表示正在调用sed脚本文件

sed命令定位文本的方法

x x为指定行号
x,y 制定从x到y的行号
/pattern/ 查询包含模式的行
/pattern/pattern/ 查询包含两个模式的行
/pattern/,x 查询与模式匹配的行到x行之间的行
x,/pattern/ 同上
x,y! 查询不在x到y行的其它行

sed编辑命令

p 打印匹配行
= 打印文件行号
a\ 行之后追加
i\ 行之前插入
d 删除定位行
c\ 用新文本替换定位文本
r 从另一个文件中读文本
w 讲文件写入到一个文件
y 变换字符
q 在第一个模式匹配完成后退出
{} 在定位行执行的命令组
n 读取下一个输入行,用下一个命令处理新的行
//关于缓冲区操作未记录,目前认为此类命令用的极少

sed命令demo

  • -n选项
$ cat 2.txt 
1:c
2:d
2:dd
2:d  d
:ddddddd
$ sed '1p' 2.txt 
1:c
1:c
2:d
2:dd
2:d  d
:ddddddd
$ sed -n '1p' 2.txt 
1:c

//没有-n意味着除选择的内容外,全部内容重新输出一遍

  • -e选项
$ sed -n -e '1p' -e '1='  2.txt 
1:c
1

其它实现多个命令方式:
1.使用;

$ sed ‘(匹配行/)编辑命令1;(匹配行/)编辑命令2;...’ 输入文件

2.使用 {}和;

$ sed '匹配行/{编辑命令1;编辑命令2}' 输入文件
#或
$ sed '{(匹配行/)编辑命令1;(匹配行/)编辑命令2;...} 输入文件

3.输入sed ’,然后按enter键,将显示二级提示符

$ sed '
1p
2=
' 2.txt

猜你喜欢

转载自blog.csdn.net/weixin_34178244/article/details/87234795