sed学习笔记

1、sed基础语法格式:

 sed[-nefr] [n1,n2],其中
 -n:安静模式,只有经过sed处理过的行才会显示出来
 -e:表示直接在命令行模式上进行sed的操作 
 -f filename:将sed的操作写在一个文件
 -r:使sed支持扩展正则
 -i:表示直接修改选取的文件内容,而不是输出终端
 n1,n2:表示选择要进行处理的行,不是必须的

 sed支持的动作:
 a:表示添加,后接字符串,添加到当前行的下一行
 c:表示替换,后接字符串,用它替换n1到n2之间的行
 d:表示删除符合模式的行,语法:sed '/regexp/d'
 i: 表示插入,后接字符串,添加到当前行的上一行
 p:表示打印,打印某个数据
 s:表示搜索,还可以替换,如‘1,20s/old/new/g’

2、具体实例

1)cat -n /tmp/passwd | sed '2,5d'  #显示passwd内容,将2,5行删除后显示
2)cat -n /tmp/passwd | sed '2a hello world' #在第二行后加上“hello world字符串”
3)cat -n /tmp/passwd | sed '2a  first line! \ second   line!'使用续航符后回车,输入后续行,再以’回车结束 
4)cat -n /tmp/passwd | sed '2,5c I am a good man!'
5)cat -n /tmp/passwd | sed  -n '5,7p'  #打印5~7行
6)ifconfig eth0 | grep 'inet' -w | sed 's/^.*inet//g' | sed 's/net.*$//'
  # 截取ifconfig中的ip
7)ifconfig eth0 | grep 'inet' -w  | awk -F " " '{print $2}'  # 截取ifconfig中的ip
8)  cat /etc/man_db.conf|grep 'MAN'| sed 's/#.*//g' | sed '/^$/d'
  #将/etc/man_db.conf中的man设置取出,单不要说明

3、基础实例

1)删除首行空格:
    sed 's/^[ ]*//g' test.txt 
    sed 's/^[[:space:]] *//g' test.txt 
    sed 's/^[[:space:]] *//g' test.txt 
2)行前添加新一行
    sed 's/pattern/\n&/g'  test.txt 
3)行后添加新一行
    sed 's/pattern/&\n/g'  test.txt
4)变量替换
    sed -e 's/$var1/$var2/g' test.txt 
5)在指定行插入字符串
    sed -i '1 i  123243423' test.txt  #在第一行插入123243423
6)在最后一行插入字符串
    sed -i '$ a \123243423' test.txt   #在最后一行插入\123243423
7)在匹配行前插入字符串  
    sed -i '/pattern/' i "要插入的字符串" test.txt
8) 在匹配行后插入字符串  
    sed -i '/pattern/' a "要插入的字符串" test.txt
9) 删除文本中空行、以空格组成的行及以#号注释的行
    grep -v ^# filname | sed /^[[:space:]]*$/d | sed /^$/d
10)将/tmp文件夹下的所有文件中的123都改成abc
    sed -i 's/123/abc/g' `grep 123 -rl /tmp/`
11)批量修改文件名
    http://www.123.bz.com/1231.html
    http://www.123.cz.com/12133.html
    http://www.123.dz.com/12133.html
    需求:将http://www.123.*.com改为http://www.123.home.com/12133.html
    sed -i 's@http://www.123.[^.]*.com@home.com@g' test.txt
12)sed按照日期截取日志
    sed /var/log/secure | sed -n '/12:46:46/,/12:46:57/p'
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_21127151/article/details/79946265
个人分类: shell脚本学习
上一篇python重新编译报错 zipimport.ZipImportError: can't decompress data
下一篇yum 常用命令
想对作者说点什么? 我来说一句

Sed学习笔记

2012年02月03日 63KB 下载

sed与awk(第二版)学习笔记

2012年11月14日 961KB 下载

linux shell Sed学习笔记

2009年04月15日 8KB 下载

shell sed 详述

2011年09月23日 106KB 下载

sed command

2011年05月28日 250B 下载

sed 用法sed 用法sed 用法

2011年01月19日 7KB 下载

没有更多推荐了,返回首页

关闭
关闭