sed 基础介绍

shell 三剑客之 sed pattern 详解

 

语法格式

shell 三剑客之 sed pattern 详解

sed 处理过程

shell 三剑客之 sed pattern 详解

 

 sed 选项

 shell 三剑客之 sed pattern 详解

 

 

cat sed.txt 

shell 三剑客之 sed pattern 详解

 

 '-p' 打印输出 ,默认输出两次,流输出一次,源文件输出一次

sed 'p' sed.txt

shell 三剑客之 sed pattern 详解

 

-n  只显示处理的行,静默模式

sed -n 'p' sed.txt

shell 三剑客之 sed pattern 详解

 

sed '/python/p' sed.txt 

shell 三剑客之 sed pattern 详解

 

sed -n '/python/p' sed.txt 

shell 三剑客之 sed pattern 详解

 

通过文件引入规则进行流处理

cat edit.sed 

shell 三剑客之 sed pattern 详解

 

引入一个文件中定义的规则

sed -n -f edit.sed sed.txt 

shell 三剑客之 sed pattern 详解

 

-r支持扩展正则表达式

sed -n -r '/python|PYTHON/p' sed.txt 

shell 三剑客之 sed pattern 详解

 

将love替换为like,源文件不修改

之所以没有输出信息,是因为没有加 p 选项

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

  

修改后的结果输出

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

shell 三剑客之 sed pattern 详解

 

将love替换为like,修改源文件

sed -i 's/love/like/g' sed.txt 

shell 三剑客之 sed pattern 详解

 

sed中的pattern详解

pattern 用法表  

shell 三剑客之 sed pattern 详解

 

案例

 显示指定的行, 打印file文件的第17行 (LineNumber )

sed -n "17p" file

 

指定起始行号和结束行号 (StartLine,EndLine )

sed -n "10,20p" file

 

指定起始行号,然后后面N行 (StartLine,+N   )

sed -n "10,+5p" file

 

正则表达式匹配的行 (/pattern1/ )

sed -n "/^root/p" file

  

从匹配到pattern1的行,到匹配到pattern2的行 (/pattern1/,/pattern2/)

sed -n "/^mail/,/^ftp/p" /etc/passwd

shell 三剑客之 sed pattern 详解

从指定行号开始匹配,直到匹配到pattern1的 (/LineNumber,/pattern1/)

#打印file文件中第4行开始匹配,直到以hdfs开头的行
sed -n "4,/^hdfs/p" file

 

从pattern1匹配的行开始,直到匹配到特定 (/pattern1/,LineNumber )

# 打印file文件中匹配root的行,直到第10行结束
sed -n "/root/,10p" file

  

打印5行并往后+3行

sed -n '5,+3p' /etc/passwd

shell 三剑客之 sed pattern 详解

 

查找bash的行

sed -n '/bash/p' /etc/passwd  

shell 三剑客之 sed pattern 详解

 

查找/sbin/nologin的行

sed -n '/\/sbin\/nologin/p' /etc/passwd

shell 三剑客之 sed pattern 详解

 

正则匹配 , 打印以root开头的行

sed -n "/^root/p" /etc/passwd

shell 三剑客之 sed pattern 详解

 

查找root开头的行到 sync 开头的行结束

sed -n '/^root/,/^sync/p' /etc/passwd

shell 三剑客之 sed pattern 详解

 

查找root开头的行,到10行结束

sed -n '/root/,10p' /etc/passwd

shell 三剑客之 sed pattern 详解

 

 

相关文章: