linux学习记录-sed

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux学习记录-sed相关的知识,希望对你有一定的参考价值。

文本处理工具

grep

sed(流编辑器)

awk(报告文本生成器)



sed基本用法

默认不编辑原文件,仅对模式空间中的数据处理。

sed:Stream EDitor 


sed [options]‘AddressCommand‘ file ...

-n 静默模式   不显示模式空间中的内容

-i 修改原文件

-e script -e script:可以同时指定多个脚步

-f :指定一个脚本文件

-r:表示使用扩展正则表达式

Address

1.StartLine,EndLine

比如1,100

2./RegExp/

/^root/

3./pattern1/,/pattern2/

第一次被pattern1匹配到和行开始,至第一次被pattern2匹配到结束

4.LineNumber

指定的行

$表示最后一行

5.StartyLine,+N

从startline开始,向后的N行


Command:

d:删除符合条件的行

sed ‘1,5d‘ /etc/fstab 

sed ‘/oot/d‘ /etc/fstab

sed ‘1,+2d‘ /etc/fstab

sed ‘/^\//d‘ /etc/fstab   用^锚定行首的/ 需要加\转义

p:显示符合条件的行

a \string:在指定的行后面追加新行。内容为String

sed ‘/^\//a \#hello world\n#helo,linux‘ /etc/fstab

i \string:在指定的行前面追加新行。内容为String

r file:将指定的文件的内容添加至符合条件的行处

sed ‘2r /etc/issue‘ /etc/fstab

sed ‘$r /etc/issue‘ /etc/fstab  最后一行添加

w file :将指定范围内的内容另存至指定的文件中

sed ‘/oot/w /tmp/oot.txt‘ /etc/fstab 

s/pattern/string/修饰符:查找并替换  ,默认只替换每行中第一次被模式匹配到的字符串

加修饰符

g:表示全局替换

i:忽略字符大小写

sed ‘s/^\//#/‘ /etc/fstab   行首的/替换为# 

sed ‘s/\//#/g‘ /etc/fstab 全部/替换为#

sed ‘[email protected]/@#@g‘ /etc/fstab    /分隔符可以用@等其他字符作为分隔符

 

$引用模式匹配到的字符串

 

history | sed ‘s#^[[:space:]]*##g‘ | cut -d‘ ‘ -f1

 

echo "/etc/rc.d" | sed -r ‘[email protected]^(/.*/)[^/]+/[email protected]\[email protected]‘ 一个文件的父目录

 


以上是关于linux学习记录-sed的主要内容,如果未能解决你的问题,请参考以下文章

老男孩Linux运维第41期20170924开班第五周学习重点课堂记录

老男孩Linux运维第41期20170924开班第五周学习重点课堂记录

CentOS初步学习记录Wget文件下载和Sed文件处理

Linux常用命令:sed

sed处理文本

awk学习随常记录