码迷,mamicode.com
首页 > 系统相关 > 详细

Linux之sed命令常见用法

时间:2019-01-23 18:12:24      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:修改   默认   otl   正则   png   nop   gre   修改文件   开机自启动服务   

 

 

1. sed(stream editor),流编辑器

  linux中,主要中sed命令实现对文件的增删改替换查

名称
       sed - 用于过滤和转换文本的流编辑器

SYNOPSIS
       sed [选项]... {script-only-if-no-other-script} [文件]...

常用选项或命令
-i                  正式执行操作修改内容    
     
-n                  取消默认输出

-e                  允许多项编辑

-r                  使用扩展正则表达式

=                   在文件内容行前增加一行行号

s                   查找并替换

g                   全局范围

p                   打印输出

/ /p              正则表达式匹配/ /里面的内容并输出

2s///g            2指代第二行

s#()()#\1\2#g     分配处理,\1指代第1个()内的内容

‘s#()()#mv & doubi#g‘     分配处理,\1指代第1个()内的内容,&指代##里面查找到的所有内容


 

2. sed的简单增删查改

# 把passwd文件复制到当前用户家目录
cp /etc/passwd ~/
cd

# 增
# 22行前插入
sed -i 22 i佛祖派来的逗比 passwd
# 22行后添加
sed -i 22 a佛祖派来的逗比 passwd
# 匹配postfix行,在行前插入
sed -i /postfix/ iemail passwd

# 删
sed -i 22d passwd
sed -i /佛祖派来的逗比/d passwd

# 查,-n取消默认输出,即只输出匹配到的内容
sed -n /root/p passwd
sed -n 22p passwd

# 替换
# 替换匹配到的第一个root为Caiyun
sed -i s#root#Caiyun# passwd
# 替换所有root为Caiyun
sed -i s#root#Caiyun#g passwd

 

3. 扩展实例

# 取ip地址
ifconfig eth0|sed -nr 2s/^.*ddr:(.*) B.*$/\1/gp

# 转换列输出
sed -r s#([^:]+)(:.*:)(/.*$)#\3\2\1#g passwd
 
# 优化sshd服务
sed 13a Port 52004\nPermitRootLogin no\nPermitEmptyPasswords no\nUseDNS no\nGSSAPIAuthentication no sshd_config
 
# 打印文件内容不包含root用户行
sed /root:x/d passwd
 
#指定行修改文件内容
sed 28s/dudu/DUDU/g passwd 
 
# 优化开机自启动服务
chkconfig --list|grep "3:on"|egrep -v "crond|network|rsyslog|sshd|sysstat" |awk {print"chkconfig",$1,"off"}|bash
 
# 批量更改文件名
ls rename/|sed -r s/(^stu.*)_fin.*$/\1.png/g
ls|sed s/\(^stu.*\)_fin.*$/mv & \1.png/g|bash
rename "_finished" ""  stu*

 

Linux之sed命令常见用法

标签:修改   默认   otl   正则   png   nop   gre   修改文件   开机自启动服务   

原文地址:https://www.cnblogs.com/Caiyundo/p/10310416.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!