生信分析、meta分析、数据挖掘
TCGA、GEO、SEER、Oncomine

linux文本截取与处理之sed

生信草堂

将会与更多的优秀微信公众号合作,把更优秀的微信推文呈现给大家,希望可以帮助读者更多的了解生信技术,培养和提高读者的生信分析能力!

号外,号外,号外

你想和生信分析大神做好朋友么?

你想认识更多爱好生信分析的小伙伴么?

你想让自己的生信分析走上快车道么?

那就赶快加入我们的生信交流微信群吧!

正确加入我们的模式是:

添加我们的微信bioinformatics88为好友

标注“加入生信草堂交流群

在群里请大家注明自己本名,单位,研究领域

便于小编管理

生信大讲堂 

生信大讲堂微信公众平台,作为浙江大学农业与生物技术学院作物所研究生第七党支部“生信大讲堂”生物信息系列讲座的重要线上平台,结合学科特色,坚持以“四讲四有”中“讲奉献有作为”作为活动核心价值观,为广大科研工作者提供了学习生物信息学相关学科知识的资源及平台。 

~戳这里生信大讲堂公众号原文,请多关注哦~


SED(Stream Editor)是一种非交互式的流编辑器,修改流经它的文本内容。sed处理文本时是以行为单位,每处理完一行就会立即打印出来,然后再处理下一行。

默认条件下,sed所有操作只是对“流”的操作,因此不会改变源文件,可通过输出重定向保存处理后的结果或者通过-i参数直接修改源文件本身。

1. sed [options] ‘command’ filename

##options是指sed的命令行参数,sed从filename标准输入。如果操作比较复杂,为了简便,可以把命令写到script,然后-f参数调用。

2. sed -f sed_script filename

##sed_script是指对输入执行的一个或多个命令,sed会依次读取输入文件的每一行操作指令并做相应处理。

来源:http://blog.jobbole.com/31026/

测试文件test内容:

d命令删除行

sed ‘2d’ filename #删除第2行,打印除第2行外文本

sed ‘2,4d’ filename #删除第2到第4行

sed ‘$d’ filename #删除最后1行

sed ‘2!d’ filename #删除除第2行以外所有行,即只保留第2行

sed ‘/human/d’ filename #删除包含human的行,第4&5行被删除

sed ‘/^2/d’ filename #删除以2开头的行

sed ‘/test$/d’ filename #删除以test结尾的行

sed ‘/^$/d’ filename #删除空行

s命令查找替换

sed ‘s/RNA/DNA/’ filename #s默认只替换每一行第一次匹配到的内容

sed ‘s/RNA/DNA/g’ filename  #利用g选项,表示全局匹配,替换所有能够匹配到的值

sed ‘s/RNA/DNA/n’ filename  #替换每一行第n个匹配值

sed ‘s/RNA//g’ filename  #将RNA替换成空,即删除所有RNA

sed ‘s/;$/./g’ filename  #将所有结尾处的‘;’换成‘.’

y命令字符转换

sed ‘y/RNA/WDY/’ filename #将R替换成W,N替换成D,A替换成Y

上面的例子可能会让你误解这和查找替换不是一样的吗?那换个例子

sed ‘y/01234/ABCDE/’ filename #将0替换成A,将1替换成2…… 

#所有的1都被替换成了A……以此例推。

sed ‘y/RNA/WD/’ filename  #如果前后对应的字符数不一致则会报错。

p命令打印

sed ‘p’ filename  #无-n参数

sed -n ‘p’ filename  #有-n参数

sed ‘1p’ filename

sed -n ‘1p’ filename #只打印第一段

## -n参数表示不打印没处理的行

a/i命令插入文本

sed ‘3 i line3’ filename  # i表示在行之前插入

sed ‘/3#/ i line’ filename  # 匹配第3行,在第3行前插入

sed ‘3 a LINE’ filename  # a表示在行之后插入

n命令读取下一行,用下一个命令处理新的行

sed ‘/1#/ {n; s/RNA/DNA/g}’ filename

#首先匹配1#即第1行,然后替换命令处理下一行即第2行

#可以看出,n命令是两行为一个单位进行处理的,其中第一行为匹配行而非处理行。

;一次执行多个命令

sed ‘s/RNA/DNA/g; y/12345/ABCDE/’ filename

&元字符保存搜索字符用来替换其他字符

sed ‘s/RNA/&AA/g’ filename  #在RNA后添加AA

sed ‘/RNA/ {s//&AA/g}’ filename  #作用同上

=命令打印被处理行行号及内容

sed ‘/RNA/ {s//&AA/g; =}’ filename  #第5行未被处理,因此不打印第5行行号

q命令退出

sed ‘2q’ filename  #打印前2行后退出

腾讯视频:每日linux(冯叔很有生气)


猜你喜欢

linux文本截取与处理之awk

干货| Linux常用命令小结(一)

推荐一个巨好用的Linux服务器连接客户端!!

Linux脚本编写“学前班”

让我带你玩转”Linux“

学术手拉手

 长按关注生信草堂

长按关注生信大讲

赞(0) 打赏
未经允许不得转载:医学SCI科研之家 » linux文本截取与处理之sed
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

meta分析、生信分析

meta、生信交流群综合科研交流群