linux sed命令一些小总结、小技巧

sed '1,3d' file //删除1-3行 

sed '/[Aa]bc/p' file //打印包含Abc或者abc的行 

sed '/ABC/d' //删除包含ABC的行 

sed '/ABC/!d' //不删除包含ABC的行 

sed '5,$d' //从第五行到最后一行全部删除 

sed 1q  //显示第一行 

sed 's/$/.../g' //每行的最后面添加 ... 

sed 's/d.(sk)/1&/g' //满足d*sk的单词,在单词前添加sk sed 's/<[^>]*>//g' //去除html标签 

sed '/ABC/a123' //在包含ABC的行后面添加一行数值为123的行 

sed '/ABC/i123' //跟a不同的是i是插入当前行的前面 

sed '/ABC/c123' //包含ABC的行将更改为123 

sed '/ABC/{n;s/123/ABC/g}' //精确匹配包含ABC的下一行,将123全部替换成ABC 

sed '/ABC/{s/A/a/}' //在包含ABC的行将A替换成a 

sed -e '/ABC/h' -e '$g' //将包含ABC的行复制,在最后一行添加. 

sed -e '/ABC/{h;d}' -e '/123/G' //将包含ABC的行复制并删除,在包含123的行后添加. g等于在当前行覆盖,G是在符合条件的行后新增加一行. sed 's/^/ /g' //每行前面增加一个空格 

sed 's/.(.)$/*1/' //将倒数第二位换成* 

sed '/ABC/!s/1/*/g' //在不包含ABC的行里,将所有的1替换成* 

sed 's/1|2|3/*/g' //在GNU里将不管是1或2或者是3替换成*

sed -i ‘/Root/s/no/yes/’ /etc/ssh/sshd_config

sed在这个文里Root的一行,匹配Root一行,将no替换成yes.

将包含now 的行 替换为 带时间戳 以及 8080 变量请求数

sed -i "/now/cnow$time_stamp 8080 request=$web1tomcat" /var/www/html/munin/web1-2.html

在某行的位置插入一行

如果只是在一个文档后面追加一行,那很简单。>> 就可以搞定。不过如果是在指定的某一行里插入。

sed -i "8 s/^/alias vi='vim'/" /root/.bashrc

就是在第8行插入 alias vi='vim'

在第一行前插入文本

sed -i '1 i\插入字符串' filename

 在最后一行插入

sed -i '$ a\插入字符串' filename

 在匹配行前插入

sed -i '/pattern/ i "插入字符串"' filename

 在匹配行后插入

sed -i '/pattern/ a "插入字符串"' filename
相关的文章:

2条评论

写评论
  • andkylee 回复

    博主, 这里面很多带括号的命令都不对吧?

  • andkylee 回复

    sed ‘s/d.(sk)/1&/g’ //满足d*sk的单词,在单词前添加sk这个命令不对吧?