linux sed

sed, a stream editor,来自贝尔实验室
这个实验室大家都不陌生吧,百度上说自1925年以来,贝尔实验室共获得两万五千多项专利,现在,平均每个工作日获得三项多专利!
sed主要用于在线文档编辑,替换统计等功能。本文案例在mac下使用gsed学习(个别命令可能会有差异)

一、安装

1)linux/unix默认安装,mac下sed可能很多命令格式不一样,可以brew install gsed
2)查看sed命令,sed -h || man sed ,当然 mac下是man gsed.

二、sed输出文件行数

1)sed输出指定行数
   #输出第一行内容 
   gsed -n '1p' line.txt
   #输出最后一行内容
   gsed -n '$p' line.txt
   #输出第一行到到第5行内容
   gsed -n '1,5p' line.txt
   (1)-n 是选项参数 输出结果的意思 还有很多
   -e command, --expression=command    允许多台编辑。    
   -h, --help                 打印帮助,并显示bug列表的地址。    
   -n, --quiet, --silent      取消默认输出。    
   -f, --filer=script-file    引导sed脚本文件名。    
   -V, --version              打印版本和版权信息。
   (2)p是命令参数 打印的意思 还有很多 常用的有
    d 从模板块(Pattern space)位置删除行
    s 从模板块(Pattern space)位置替换
    e 从模板块(Pattern space)位置编辑 (不会更改原内容)
    a 从模板块(Pattern space)位置追加
    i 从模板块(Pattern space)位置插入  (更改原内容)
    g 把暂存缓冲区里的内容复制到模式空间,覆盖原有的内容
    w 将所选的行写入文件


1)sed输出多行
   #输出第一行、第二行内容
   gsed -n '1,2p' line.txt

三、sed删除文件行数

1)sed删除指定行数
   #删除第10行 
   gsed -i '10d' line.txt
   #删除最后一行
   gsed -i '$d' line.txt

四、sed替换文件

1)字符串替换
  #将Line替换成a
  gsed -i 's/Line/a/g' line.txt

五、附加说明

学习sed实在让人没耐心,感觉命令复杂不清,其他命令也可以代替。如有兴趣或想多学可以去官方查看手册:https://www.gnu.org/software/sed/manual/sed.html

你可能感兴趣的:(linux,sed)