shell脚本--文本处理三剑客之 sed基础使用

sed的工作模式

基础介绍  sed(Stream Editor) 流编辑器. 对标准输出或文件逐行进行处理

语法格式

第一种

stdout | sed [option] "pattern command"

第二种

sed [options] "pattern command" file

set的选项

选项                        含义

-n                    只打印模式匹配
-e                    直接在命令行进行sed编辑,默然选项
-f                    编辑动作保存在文件中,指定文件执行
-r                    支持拓展正则表达式
-i                    直接修改文件内容

-p再次输出命令 

$ sed 'p' sed.txt 
i love python
i love python
I love PYTHON
I love PYTHON


hoodep
hoodep

-n 只打印匹配模式
$sed -n 'p' sed.txt 
i love python
I love PYTHON

hoodep

'/python/' 为固定模式 

$ sed -n '/python/p' sed.txt 
i love python

-e 多个命令执行

$ sed -n -e '/python/p' -e '/PYTHON/p' sed.txt 
i love python
I love PYTHON

-f 执行edit.sed中的文本命令 

$ sed -n -f edit.sed  sed.txt

-r 支持拓展表达式 

$ sed -n '/python\|PYTHON/p' sed.txt 
i love python
I love PYTHON


$ sed -n -r '/python|PYTHON/p' sed.txt 
i love python
I love PYTHON

-i 直接修改文件内容 ,不带-i直接修改输出内容

$ sed -n 's/love/like/g;p' sed.txt 
i like python
I like PYTHON

hoodep




$ sed -n -i 's/love/like/g;p' sed.txt 

$ cat sed.txt 
i like python
I like PYTHON

hoodep

sed中的pattern详解

                            pattern用法表

匹配模式                                    含义
10command                            匹配到第10行
10,20command                         匹配从第10行开始到,到20行结束
10,+5command                         匹配从第10行开始到,到16行结束
/pattern1/command                    匹配到pattern1的行
/pattern1/,/pattern2/command         匹配到pattern1的开始 到匹配到pattern2的行结束
10,/pattern1/command                 匹配从第10行开始,匹配到pattern1的行结束
/pattern1/,10command                 匹配到的pattern1的行开始,到第10行匹配结束

打印指定行 

$ sed -n 2p sed.txt 
I like PYTHON

打印一定范围的行

sed -n '3,4p' sed.txt 

hoodep

 /pattern1/command   正则匹配模式

$  sed -n '/^root/p' /etc/passwd
root:x:0:0:root:/root:/bin/bash

/pattern1/,/pattern2/command  

$ sed -n '/^root/,/^chencl/p' /etc/passwd
root:x:0:0:root:/root:/bin/bash
...........
chencl:x:1000:1000:chencl,,,:/home/chencl:/bin/bash
发布了28 篇原创文章 · 获赞 21 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/ChaoLi_Chen/article/details/105738184