关于sed

         sed属于行编辑器。它是 支持逐行处理要被处理的文件内容 sed脚本
         定址可以通过定址来定位你所希望编辑的行,该地址用数字构成,用逗号分隔的两个行数表示以这两行为起止的行的范围(包括行数表示的那两行)。
 如1,3表示1,2,3行,美元符号($)表示最后一行。范围可以通过数据,正则表达式或者二者结合的方式确定

    下面说说关于sed的命令和参数

        p:打印行
    sed /cache/p /proc/cpuinfo     显示的内容是

[root@server74 ~]# sed /cache/p /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model  : 37
model name : Intel(R) Core(TM) i3 CPU       M 380  @ 2.53GHz
stepping : 8
cpu MHz  : 2527.069
cache size : 3072 KB
cache size : 3072 KB
fdiv_bug : no
可以看到,p的作用是在cache行后再打印出一行。

           -n可以不输出没有被匹配到得行,取消默认输出的行     再在上面基础上作出这样语句:   sed -n /cache/p /proc/cpuinfo 显示结果:
[root@server74 ~]# sed -n /cache/p /proc/cpuinfo
cache size : 3072 KB
这样已经取消显示默认要输出的行了

    sed -n 1,3p  把第一行到第三行显示出来:
[root@server74 ~]# sed -n 1,3p /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
    sed -n /cache/,/wp/p files 显示从/cache到/wp之间的行内容:
[root@server74 ~]# sed -n /cache/,/wp/p /proc/cpuinfo
cache size : 3072 KB
fdiv_bug : no
hlt_bug  : no
f00f_bug : no
coma_bug : no
fpu  : yes
fpu_exception : yes
cpuid level : 11
wp  : yes
          d:删除不想显示的行
    sed /chche/d /proc/cpuinfo  这样在上述输出中就不会再有cache这行了
    sed "/^processor/a\ this is my cpu." /proc/cpuinfo在processor后加上~~
[root@server74 ~]# sed "/^processor/a\ this is my cpu" /proc/cpuinfo

processor : 0
 this is my cpu
    a\ 在匹配到行后面追加新行   i\在前面追加新行
    \n是换行符,可以实现追加多个行  如上面的例子:[root@server74 ~]# sed "/^processor/a\ this \n is \n my \n cpu" /proc/cpuinfo
processor : 0
 this
 is
 my
 cpu
    g在行内进行全局替换   $ 表示一个文件的最后一行
    sed '1,$s/yes/YES/g'/proc/cpuinfo    在文件中从第一行到最后一行把yes改为YES
    

你可能感兴趣的:(职场,sed,休闲)