码迷,mamicode.com
首页 > 其他好文 > 详细

sed命令基本用法

时间:2018-11-29 20:10:23      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:副本   bubuko   文本编辑   换行   技术   查找   修改   文本编辑器   com   

sed是一个非交互式文本编辑器,它可对文本文件和标准输入进行编辑
sed 适用于以下三种场合
编辑相对交互式文本编辑器而言太大的文件
编辑命令太复杂,在交互式文本编辑器中难以输入的情况
对文本扫描一遍,但是需要执行多个编辑函数的情况
sed只对缓冲区中原始文件的副本进行编辑,并不编辑原始的文件,因此如果需要保存改动的内容,需要将输出重定向到另一个文件

sed命令选项及其意义
-n --不打印所有的行到标准输出
-e --表示将下一个字符串解析为sed编辑命令,如果只传递一个编辑命令给sed,-e可以省略
-f --表示正在调用sed脚本文件

sed命令选项的一组例子
将第一行内容打印出来
sed -n ‘1p‘ dwa_m_excel_dura_aggr_prop.log
将第一行取出来,并重定向到dim_ia_test.log文件中
sed -n ‘1p‘ dwa_m_excel_dura_aggr_prop.log > dim_ia_test.log
将第3~6行内容打印出来
sed -n ‘3,6p‘ dwa_m_excel_dura_aggr_prop.log
将包含application的行打印出来(这里大小写是敏感的)
sed -n ‘/application/p‘ dwa_m_excel_dura_aggr_prop.log
将包含application的行号打印出来(这里大小写是敏感的)
sed -n ‘/application/=‘ dwa_m_excel_dura_aggr_prop.log
将包含application的行号和行内容打印出来(这里大小写是敏感的),当多个编辑命令同时实现时,加-e
sed -n -e ‘/application/=‘ -e ‘/application/p‘  dwa_m_excel_dura_aggr_prop.log
sed追加文本,在instead.后面追加we append a new line.内容
sed ‘/instead./a\we append a new line.‘ dim_ia_test.log

sed追加文本,使用-f : cat append.sed

#!/bin/sed -f
#instead.为要查找的内容,a\表示此处换行添加文本
/instead./awe append a new line.we append another line.

 为脚本赋可执行权限 chmod u+x append.sed

运行脚本:

./append.sed dim_ia_test.log

在a\为在定位行号之后插入文本信息

运行结果为:

技术分享图片

 sed文本定位的一组例子

将含有.的行打印出来,‘.‘为元字符,需要转义
sed -n ‘/\./p‘ dim_ia_test.log
将最后一行打印出来
sed -n ‘$p‘ dim_ia_test.log   
等价
sed -n ‘$‘p dim_ia_test.log
将以ing结尾的行打印出来
sed -n ‘/.*ing/p‘ dim_ia_test.log
2~10行不打印,其他行打印出来
sed -n ‘2,10!p‘ dim_ia_test.log  
将含有HIVE_CONF_DIR的行到最后一行的行内容打印出来
sed -n ‘/HIVE_CONF_DIR/,$p‘ dim_ia_test.log
将第三行到含有HIVE_CONF_DIR的行的内容打印出来
sed -n ‘3,/HIVE_CONF_DIR/p‘ dim_ia_test.log 

sed基本编辑命令的一组例子

一、sed插入文本,使用i\

cat insert.sed

 

#!/bin/sed -f
/instead./iWe insert a new line.

 

为脚本赋可执行权限 chmod u+x insert.sed

运行该脚本

./insert.sed dim_ia_test.log

技术分享图片  

 

在i\为在定位行号之前插入文本信息

二、sed修改文本用c\

cat modify.sed

 

#!/bin/sed -f
/instead./cWe modify this line.

 

为脚本赋可执行权限 chmod u+x modify.sed

运行该脚本:

./modify.sed dim_ia_test.log

运行结果:

技术分享图片

 三、sed删除文本,不区分大小写

cat delete.sed

#!/bin/sed -f
/[Ii][Nn][Ss][Tt][Ee][Aa][Dd]/d

脚本赋可执行权限 chmod u+x delete.sed  

运行该脚本:

技术分享图片

运行结果将instead所在的行删除;

 

sed命令基本用法

标签:副本   bubuko   文本编辑   换行   技术   查找   修改   文本编辑器   com   

原文地址:https://www.cnblogs.com/xiao02fang/p/10039945.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!