shell编程基础-字符截取(sed)

sed:主要用来将数据进行选取,替换,删除,新增的轻量级流编辑器。

sed [选项] '[动作]' 文件名

 [选项]:
    -n: 一般sed命令会把所有的数据都输出到屏幕,如果加入此选择,则把经过sed命令处理的行输出到屏幕;
    -e: 允许对输入数据应用多条sed命令编辑;
    -i: 用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出;
    -f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作;
    -r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法);
    
    
 [动作]:
    a\ :新增行, a 的后面可以是字串,而这些字串会在新的一行出现(目前的下一行) 
    c\ :取代行, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行 
    d :删除行,因为是删除,所以 d 后面通常不接任何参数,直接删除地址表示的行; 
    i\ :插入行, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
    p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行;
    s :替换,可以直接进行替换的工作,通常这个 s 的动作可以搭配正规表示法,例如 1,20s/old/new/g 一般是替换符合条件的字符串而不是整行;

案例:
    1、只输出第二行内容
        sed -n '2p' test.txt 
    2、删除第二行到第四行(只是删除输出)
        sed '2,4d' test.txt    
    3、第二行后面新加一行AA
        sed '2a AA' test.txt
    4、第二行上面新加一行AA
        sed '2i AA' test.txt
    5、第四行输出文件字符替换88替换99
        sed '4s/99/88/g' test.txt
    6、改变源文件
        sed -i '4s/99/88/g' test.txt

你可能感兴趣的:(运维,Linux)