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

linux文本截取与处理之cut

生信草堂

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

号外,号外,号外

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

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

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

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

正确加入我们的模式是:

添加我们的微信bioinformatics88为好友

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

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

便于小编管理

生信大讲堂 

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

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

前面说了awk和sed,

自然少不了要说说

cut

cut以行为处理单位,用法比sed和awk要简单很多,功能也相对简单,提取指定域数据。

三种用法:

1.cut -bn <file>

##以字节(byte)为分割单位

-b list   打印出list中指定位置字节,制表符和空格符均为一个字节;

-n  对于多字节字符不进行分割,主要针对汉字(一个汉字三个字节)等多字节字符;

2.cut -c <file>

##以字符(character)为分割单位

-c list   打印出list中指定位置字符,对于单字节字符同-b选项,对于多字节字符有区别;

3.cut -df <file> 

##以域(fileld)为分割单位

-f list  打印出list中指定位置域,默认以制表符作为分隔符;

-d byte   指定分隔符;

Examples

this is first line!    today is last day of November;    tomorrow is first day of December. 这是第二行!    today is last day of November;    tomorrow is first day of December. zheshidisanhang!    today is last day of November;    tomorrow is first day of December.

tip:如何查看文本中哪些是制表符

1.在shell中,vim <file>, 依次输入“:”,“set list”

this is first line!^Itoday is last day of November;^Itomorrow is first day of December.$ 这是第二行!^Itoday is last day of November;^Itomorrow is first day of December.$ zheshidisanhang!^Itoday is last day of November;^Itomorrow is first day of December.$

2. sed -n l <file>

this is first line!ttoday is last day of November;ttomorrow is first day of December.$ 350277231346230257347254254344272214350241214357274201ttoday is last day of November;ttomorrow is first day of December.$ zheshidisanhang!ttoday is last day of November;ttomorrow is first day of December.$

test1: -bn命令

[root@201 test]# cut -b1-5 test  this 
这 zhesh

## 命令同cut -b1,2,3,4,5 test

## 输入每一行的1到5字节

## 第一行第五个字节是TAB制表符

## 第二行一个汉字三个字节,所以第4/5字节不能表示第二个字,因此只打印第一个字

## 第三行输出前五个字母(一个字母一个字节)

test2:-c 命令

[root@201 test]# cut -c1-4 test
this
这是第二 zhes

## 输入每一行的1到4字符

## 一个英文字母对应一个字节,一个字符

## 一个汉字对应三个字节,一个字符

test3: -df命令

[root@201 test]# cut -f2 test  today is last day of November; today is last day of November; today is last day of November;

## 默认以制表符为分隔符

## 每一行输出第2个域

[root@201 test]# cut -d" " -f1  test  this
这是第二行!    today zheshidisanhang!    today

## 以空格作为分隔符

[root@201 test]# cut -d"N" -f1  test  this is first line!    today is last day of  这是第二行!    today is last day of  zheshidisanhang!    today is last day of

## 以“N”作为分隔符

[root@201 test]# cut -d"today" test  cut: the delimiter must be a single character Try `cut --help' for more information.

## 尝试分割符为多个字符,报错

## 分隔符为单字符

## 如果某些域是由很多个空格或其他分隔符分隔,那cut就有点麻烦了

查看相关文章

linux文本截取与处理之sed

linux文本截取与处理之awk

基于Kmer的基因组调查

如何写一个脚本

逐步深入绘制热图

学术手拉手

 长按关注生信草堂

长按关注生信大讲

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

评论 抢沙发

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

meta分析、生信分析

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