当前位置:   article > 正文

【sed 命令详解】_sed -n命令

sed -n命令

sed  行文件编辑工具。因为它编辑文件是以行为单位的。
命令格式详解

命令格式:
      sed [参数] '<匹配条件> [动作]' [文件名]
   注意:
      可以通过 sed --help 查看grep的帮助信息


参数详解:
      参数为空 表示sed的操作效果,实际上不对文件进行编辑
       -i 表示对文件进行编辑
      注意:mac版本的bash中使用 -i参数,必须在后面单独加个东西: -i ' '


匹配条件:
     匹配条件分为两种:数字行号或者关键字匹配
   关键字匹配格式:
       '/关键字/'
注意:
   隔离符号 / 可以更换成 @、#、!等符号
   根据情况使用,如果关键字和隔离符号有冲突,就更换成其他的符号即可。
动作详解
   -a 在匹配到的内容下一行增加内容
    -i 在匹配到的内容上一行增加内容
    -d 删除匹配到的内容
    -s 替换匹配到的内容
注意:
上面的动作应该在参数为-i的时候使用,不然的话不会有效果


替换命令演示

行号、列号、全体
命令格式:
   sed -i [替换格式] [文件名]
   注意:替换命令的写法
    's###' ---> 's#原内容##' ---> 's#原内容#替换后内容#'
 常见替换格式:
     模板文件内容
    admin-1@ubuntu:~$ cat sed.txt
    nihao sed sed sed
    nihao sed sed sed
     nihao sed sed sed

替换 每行首个匹配内容:
sed -i 's#原内容#替换后内容#' 文件名
示例:替换首每行的第1个sed为SED
admin-1@ubuntu:~$ sed -i 's#sed#SED#' sed.txt
admin-1@ubuntu:~$ cat sed.txt
nihao SED sed sed
nihao SED sed sed
nihao SED sed sed


替换 全部匹配内容:
sed -i 's#原内容#替换后内容#g' 文件名
示例:替换全部sed为des
admin-1@ubuntu:~$ sed -i 's#sed#SED#g' sed.txt
admin-1@ubuntu:~$ cat sed.txt
nihao SED SED SED
nihao SED SED SED
nihao SED SED SED


指定 行号替换 首个匹配内容:
sed -i ' 行号s#原内容#替换后内容#' 文件名
示例:替换第2行的首个SED为sed
admin-1@ubuntu:~$ sed -i '2s#SED#sed#' sed.txt
admin-1@ubuntu:~$ cat sed.txt
nihao SED SED SED
nihao sed SED SED
nihao SED SED SED


首行指定 列号替换匹配内容:
sed -i 's#原内容#替换后内容# 列号' 文件名
示例:替换每行的第2个SED为sed
admin-1@ubuntu:~$ sed -i 's#SED#sed#2' sed.txt
admin-1@ubuntu:~$ cat sed.txt
nihao SED sed SED
nihao sed SED sed
nihao SED sed SED


指定 行号列号匹配内容:
sed -i ' 行号s#原内容#替换后内容# 列号' 文件名
示例:替换第3行的第2个SED为sed
admin-1@ubuntu:~$ sed -i '3s#SED#sed#2' sed.txt
admin-1@ubuntu:~$ cat sed.txt
nihao SED sed SED
nihao sed SED sed
nihao SED sed sed

增加操作
作用:
在指定行号的下一行增加内容
格式:
sed -i '行号a\增加的内容' 文件名


注意:
如果增加多行,可以在行号位置写个范围值,彼此间使用 逗号隔开,例如
sed -i '1,3a\增加内容' 文件名
演示效果:


指定行号增加内容
admin-1@ubuntu:~$ sed -i '2a\zengjia-2' sed.txt
admin-1@ubuntu:~$ cat sed.txt
nihao SED sed SED
nihao sed SED sed
zengjia-2
nihao SED sed sed


指定1~3每行都增加内容
admin-1@ubuntu:~$ sed -i '1,3a\tongshi-2' sed.txt
admin-1@ubuntu:~$ cat sed.txt
nihao SED sed SED
tongshi-2
nihao sed SED sed
tongshi-2
zengjia-2
tongshi-2
nihao SED sed sed

在指定行号的当行增加内容
格式:
sed -i '行号i\增加的内容' 文件名
注意:
如果增加多行,可以在行号位置写个范围值,彼此间使用 逗号隔开,例如
sed -i '1,3a\增加内容' 文件名

指定行号增加内容
admin-1@ubuntu:~$ sed -i '1i\insert-1' sed.txt
admin-1@ubuntu:~$ cat sed.txt
insert-1
nihao SED sed SED
tongshi-2
nihao sed SED sed
tongshi-2
zengjia-2
tongshi-2
nihao SED sed sed

删除操作
作用:
指定行号删除
格式:
sed -i '行号d' 文件名
注意:如果删除多行,可以在行号位置多写几个行号,彼此间使用 逗号隔开,例如
sed -i '1,3d' 文件名


删除第4行内容
admin-1@ubuntu:~$ sed -i '4d' sed.txt
admin-1@ubuntu:~$ cat sed.txt
insert-1
nihao SED sed SED
tongshi-2
tongshi-2
zengjia-2
tongshi-2
nihao SED sed sed


删除多行(3-5行)内容
admin-1@ubuntu:~$ sed -i '3,5d' sed.txt
admin-1@ubuntu:~$ cat sed.txt
insert-1
nihao SED sed SED
tongshi-2
nihao SED sed sed

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/322975
推荐阅读
相关标签
  

闽ICP备14008679号