ITPub博客

首页 > Linux操作系统 > Linux操作系统 > sed 命令专题

sed 命令专题

原创 Linux操作系统 作者:fjzcau 时间:2015-02-08 22:13:03 0 删除 编辑
sed -i 's/20120408/20120409/g' *.verf

--多个空格合并为一个空格
sed -i 's/[ ][ ]*/[ ]/g'   datafile


--删除空白行
sed -i '/^[\s| ]*$/d'    datafile

删除当前目录下所有c文件中get_tbms所在的行:
find . -name "*.c"| xargs -i {} sed -i -e '/get_tbms/d' {}

将字符串uHALr_printf( 或 error_printf( 或 sys_printf( 或 printf(
替换为 StsRtsPrintf(DEBUG_OS_TYPE :
find . -name "*.c" | xargs -i{} sed -i -e 's/
            -e 's/
            -e 's/
            -e 's/

--------------------------------------------------------------
需要在匹配‘bbb = ’ 的行下,增加新行‘, abcdefg’
sed -i '/bbb = /a\\, abcdefg'    datafile

需要在匹配‘bbb = ’ 的行尾追加字符串‘, abcdefg’
sed -i '/bbb =/{s/$/, abcdefg/}'      datafile
或
sed -i '/bbb =/ s/$/,abcdef/'         datafile

需要在匹配‘bbb = ’ 的串尾后追加字符串‘, abcdefg’
sed -i 's/bbb=.*/&,abcdefgh/'    datafile
串前:
sed -i 's/bbb=.*/abcdefgh,&/'    datafile
sed -i 's/bbb=/abcdefgh,&/'    datafile
----------------------------------------------------------

----------> 删除文件datafile中所有的  's形式所有格式单词所在的行----->
原文件内容:
ss
aa'bb
cc    cc'a
ee

sed  -i 's/[a-z]\+'\''[a-z]\+//'  datafile

删除后:
ss

cc    cc'a
ee
<----------------------------------------------
                                 
sed '/'\''/d' file

sed '/'"'"'/d' file

sed "/'/d" file

sed -i "/'s/d" file


--------------------------------------------------------------------------
单引号为绝对引用,双引号中可以用变量:
sed 's/aaa/bbb/'     /etc/passwd
i=bbb
sed "s/aaa/$i"          /etc/passwd

多条指令:                                                                                                                                                                          
sed 's/aaa/bbb/;s/mmm/nnn/'     /etc/passwd     或者
sed -e 's/aaa/bbb/' -e 's/mmm/nnn/'     /etc/passwd
sed 's/lo/xo/2'     <<<"hello hello"          匹配第二次出现的lo
sed不能匹配换行符
sed 's/^ *$//'          匹配空行,或有空格
sed 'N;s/\n//'          sed '/^$/d'     /etc/passwd          删除空行
sed 's/A-Z/(&)/'     << sed -r 's/(.*):(.*):(.*)/\3-\2-\1/'     实现以:分割的,列出第三列、第二列、第一列
sed '1,3d'     /etc/passwd          删除1到3行
sed '/root/d'     /etc/passwd     有root就删掉整行
sed -r '1,5{s/a/b/;s/c/d/}'           在相同范围内作很多动作
sed 'y/abcdefg/ABCDEFG/' << sed '/root/a ##########################' /etc/passwd          遇到root就在该行后追加##########
sed '/root/i ##########################' /etc/passwd          遇到root就在该行前追加##########
sed 'N;s/\n/\t/'     /edd          两行合成一行
sed '1,5{H;d};10G' /etc/passwd          把1到5行剪切到10行后,h覆盖保持空间,H追加
sed '1,5H;10G' /etc/passwd               把1到5行复制到10行后,g覆盖原有行,G在原有行后追加
------------------------------------------------

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22661144/viewspace-1430659/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: find 命令专题
下一篇: sftp脚本
请登录后发表评论 登录
全部评论

注册时间:2011-04-03

  • 博文量
    208
  • 访问量
    547159