sed命令

       sed命令有两种格式

sed  [选项]   '操作'   参数

sed  [选项]  -f scriptfile 参数

       “参数”是指操作的目标文件,当存在多个操作对象时用,文件之间用逗号“,”分隔;而scriptfile表示脚本文件,需要用-f选项指定,表示通过指定的脚本文件来处理输入的目标文件。

选项

常见的sed命令选项包含以下几种:
-e或-expression=:表示用指定命令或者脚本来处理输入的文本文件
-f或-file-:表示用指定的脚本文件来处理输入的文件文件
-h或--help:显示帮助
-n、-quite或silent:表示仅表示处理后的结果
-i:直接编辑文本文件

      “操作”用于只当对文件操作的动作行为,也就是sed的命令。通常情况下是采用“[n1[n2]]”操作参数的格式。n1、n2是可选的,代表选择进行操作的行数

a:增加,在当前行下面增加一行指定内容。
c:替换,讲选定行替换为指定内容。
d:删除,删除选定的行。
i:插入,在选定行上面插入一行指定内容。
p:打印,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容,如果又非打印字符,则以ASCLL码输出。通常与“-n”选项一起使用。
s:替换,替换指定字符
y:字符转换

  1、输出第三行内容

       2、输出3-5行内容

  3、输出第三和第五行

        4、sed -n '1,5{1~2p}' borke.log   #输出1-5的奇数行

             sed -n '1,5{2~2p}' broke.log   #输出1-5的偶数行

         5、从第3行开始,连续进行输出即输出3-8行的内容

sed结合正则表达式输出指定行

  sed 命令结合正则表达式时,格式略有不同,正则表达式以“/”包围。注:如果遇到特殊符号的情况,扩展正则还需要转义字符“\”。

       包含shang的行

       输出包含shang的行所在的行号,用(=)来输出行号

      输出shang开头的行

      删除符合条件的文本:

nl test.txt | sed '3d'     或者     sed  '3d'  test.txt   或者sed -i '3d' test.txt
-i会对文本直接进行修改
删除第三行

     #删除带有shang字符的行,

插入符合条件的行

      在第三行的上一行添加 shang hai is color world

  sed '/shang/i  beijing' test.txt  #在含有shang的行的上一行添beijing

      sed '/shang/a  beijing' test.txt  #在含有shang的行的下一行添beijing

  将所有a替换为A

     将第3行将第一个a替换为A

 

posted on 2024-11-02 20:16  溪水静幽  阅读(44)  评论(0)    收藏  举报