cliffgao的个人博客分享 http://blog.sciencenet.cn/u/cliffgao 兴趣:生物信息学、统计、概率

博文

sed

已有 2534 次阅读 2016-4-17 15:13 |个人分类:linux相关|系统分类:科研笔记


Sed  是 stream editor 简称.


1. 替换

sed 's/day/night/' < old  > new


2 斜杠(/)作为分隔符

s 后面的字符常用做分隔符. 通常我们会使用斜杠(/). 当然你可以使用任何的符号.

例如我们将目录/usr/local/bin  换为  /common/bin  . 你需要使用反斜杠()来引用斜杠.

sed 's//us/local/bin//common/bin/' <old >new

如果你嫌上面太难看.你可以用其他分隔符.

sed 's_/usr/local/bin_/common/bin_' < old >new

sed 's:/usr/local/bin :/common/bin:' < old >new


3. 使用 & 作为匹配字符串

echo "123 abc" | sed  's/[0-9]*/ & &/'

123 123 abc


4. 使用正则表达式   , -r.


% echo "123 abc" | sed -r 's/[0-9]+/& &/' 123 123 abc



5. 使用 1 保留模式的一部分


echo abcd123 | sed 's/([a-z]*).*/1/'

abcd


6. /g  全局替换

将第一个单词加上括号

sed  's/[^ ]*/(&)/' <old > new

如果想让文件中没一行的第一个单词加上括号

sed 's/[^ ][^ ]*/(&)/g' <old >new

6  -f 使用脚本

sed -f  sedscript  <old > new

7  d 删除

查看前10行

sed '11, $ d' < file

8  p  打印

打印第5行到10行

sed -n '5,10 p' < file

9 i  插入一行

#!/bin/sh sed ' /WORD/ i Add this line before every line with WORD '

10.  c 改变一行


#!/bin/sh sed ' /WORD/ c Replace the current line with the line '


参考:

http://www.grymoire.com/Unix/Sed.html#uh-0



https://blog.sciencenet.cn/blog-468005-970740.html

上一篇:谬误- 人身攻击
下一篇:xmgrace
收藏 IP: 132.234.251.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-21 04:10

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部