ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Sed常用用法整理

Sed常用用法整理

原创 Linux操作系统 作者:king3171 时间:2020-06-21 21:39:26 0 删除 编辑

将文件中的root全部替换为abc:

sed  's/root/abc/g' passwd 只输出执行结果,不修改文件

sed -i 's/root/abc/g' passwd 直接修改文件


打印文件第2行:

sed -n 2p passwd


打印第2-5行

sed -n 2,5p passwd


在文件的第2行后插入一行

sed '2a  106,dandan,cso' passwd


在文件的第2行前插入一行

sed '2i  106,dandan,cso' passwd


删除文件中第2到第5行

sed '2,5d' passwd


实现取出匹配begin的行直到匹配到end字符的行结束

sed -n '/begin/,/end/p' 1.txt


打印匹配abc的行到最后一行的内容

sed -n '/abc/,$p' file.txt


截取6天前的日志

sed -n '/'"$(date -d "-6 day" +%b" "%d)"'/,$p' /home/oracle/test/alert_orcl11g.log | more 

sed -n '/'"$(date -d "-6 day" +%b" "%d)"'/,$p' /home/oracle/test/alert_orcl11g.log  > alert.log


截取两个字符串之间日志


n 匹配行的下一行

N 追加到下一行


p 打印

P 打印到\n


b 无条件跳转 未匹配后面不执行

t 有条件跳转 未匹配执行后面


:fun1

在匹配B时,b func1 类似goto 跳转到 前面A匹配中


N 判断后拼接不匹配

n 判断后过滤不匹配

# sed '/A/{p;:fun1 ; n ; :fun2 /B/{p;b fun1} ;n; b fun2} ’ file1 -n


查找特定的字符串

sed -n "/2010:13:30:00/,/2010:17:30:00/"p access_2010011605.log | awk -F: '/'.'php/{print $2}' |uniq -c

 168576 13

 301975 14

 285616 15

 299248 16

 154377 17


sed -n "/2010:09:30:00/,/2010:13:30:00/"p action.new |awk '{if($3~/^action/){print $3} else if($4~/^action/){print $4}}' |sort |uniq -c |sort -nr

533271 action=plInfo

 132742 action=FriendPet

 101258 action=Info


awk ‘/字符串1/{a=1}a{b=b?b"\n"$0:$0;if(b~/字符串2/){print b;b=""}}’ file

sed -n ‘/字符串1/{p;:1;n;:2;/字符串2/{p;b1};N;b2}’ file

awk ‘/字符串1/{a=1}a{b=b?b"\n"$0:$0;if(b~/字符串2/){print b;b=""}}’ file

sed -n ‘/字符串1/{p;h;b};:m;x;/lzj/{x;N;/字符串2/!{bm;};p;b};x’ file


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/51077/viewspace-2699788/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Awk常用用法整理
请登录后发表评论 登录
全部评论

注册时间:2009-08-03

  • 博文量
    20
  • 访问量
    14954