java 执行 awk_3.1 biostar lesson3 linux学习日记;java版本;awk
发布日期:2021-06-24 11:21:44 浏览次数:3 分类:技术文章

本文共 2749 字,大约阅读时间需要 9 分钟。

又学一招,来自组织的微信群

如果.bashrc 无法保存,解决方案

删掉.swp

删掉.bashrc.bak

就OK

conda

查看当前环境下,都安装了哪些软件

conda list

发现有一篇很好的介绍文章

还有一篇

进入正题,AWK

前一段时间,看到好多生信组的童鞋不远千里的坐小火车去学习awk,觉得不是很理解。直到最近自己要准备各种文件,才觉得此乃神器,必须掌握

以下摘抄自别人

awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file

[-F|-f|-v] 大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=value

' ' 引用代码块

BEGIN 初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符

// 匹配代码块,可以是字符串或正则表达式

{} 命令代码块,包含一条或多条命令

; 多条命令使用分号分隔

END 结尾代码块,在对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出结尾摘要信息

-F 指定分隔符

$0 表示整个当前行

$1 每行第一个字段

NF 字段数量变量

NR 每行的记录号,多文件记录递增

我们这里主要对-F的例子进行记录。

$1 指指定分隔符后,第一个字段,$3第三个字段, \t是制表符

一个或多个连续的空格或制表符看做一个定界符,即多个空格看做一个空格

awk -F";" '{print $1}' file 以分号分隔,选择第一列:

awk -F";" '{print $1 $3}' file //$1与$3相连输出,不分隔

awk -F";" '{print $1,$3}' file //多了一个逗号,$1与$3使用空格分隔

awk -F";" '{print $1 " " $3}' file //$1与$3之间手动添加空格分隔

awk -F";" '{print "this is gene name :" "***" $3 }' file //自定义输出

awk -F ";" '{print NF}' file //显示每行有多少字段

awk -F; 'NF==4 {print }' file //显示只有4个字段的行

awk -F";" 'NF>2{print $0}' file //显示每行字段数量大于2的行

awk '{print NR,$0}' /etc/passwd //输出每行的行号

awk -F: '{print NR,NF,$NF,"\t",$0}' file //依次打印行号,字段数,最后字段值,制表符,每行内容

awk -F: 'NR==5{print}' file //显示第5行

awk -F: 'NR==5 || NR==6{print}' file //显示第5行和第6行

---------分隔符----------

OK 回到我们最初的问题:提取uniq的gene_name

cat file | awk -F “;” ‘{print $3}’ | awk -F " " '{print $2}' | sort |uniq |wc -l

个人赶脚比较有用的命令less

用less命令

搜索/

下一个hit n

前一个hit N

JAVA安装

因为java9和igv不兼容,所以需要安装java8,不知道为啥java7安装不了,说是不存在

brew cask install caskroom/versions/java8

然后在~/.bashrc 里面添加

export JAVA_8_HOME=`/usr/libexec/java_home -v 1.8`

export JAVA_HOME=$JAVA_8_HOME

然后在terminal里面

source ~/.bashrc

grep 通配符

这里有一个很好的解释,每天一个linux命令

^ #锚定行的开始 如:'^grep'匹配所有以grep开头的行。

$ #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。

. #匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。

匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。 这个被加粗纯粹是因为markdown混淆了,不是我有意的

.* #一起用代表任意字符。

[] #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。

[^] #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。

(..) #标记匹配字符,如'(love)',love被标记为1。

< #锚定单词的开始,如:'

> #锚定单词的结束,如'grep>'匹配包含以grep结尾的单词的行。

x{m} #重复字符x,m次,如:'0{5}'匹配包含5个o的行。

x{m,} #重复字符x,至少m次,如:'o{5,}'匹配至少有5个o的行。

x{m,n} #重复字符x,至少m次,不多于n次,如:'o{5,10}'匹配5--10个o的行。

\w #匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。

\W #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。

\b #单词锁定符,如: '\bgrep\b'只匹配grep。

POSIX字符:

为了在不同国家的字符编码中保持一至,POSIX(The Portable Operating System Interface)增加了特殊的字符类,如[:alnum:]是[A-Za-z0-9]的另一个写法。要把它们放到[]号内才能成为正则表达式,如[A- Za-z0-9]或[[:alnum:]]。在linux下的grep除fgrep外,都支持POSIX的字符类。

[:alnum:] #文字数字字符

[:alpha:] #文字字符

[:digit:] #数字字符

[:graph:] #非空字符(非空格、控制字符)

[:lower:] #小写字符

[:cntrl:] #控制字符

[:print:] #非空字符(包括空格)

[:punct:] #标点符号

[:space:] #所有空白字符(新行,空格,制表符)

[:upper:] #大写字符

[:xdigit:] #十六进制数字(0-9,a-f,A-F)

另外一个在登陆cluster运行命令的时候常用的命令screen这个没怎么看懂,但是觉得有用,主要是每次分析用interctive

转载地址:https://blog.csdn.net/weixin_32467749/article/details/114592648 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java二叉树求权值_百度笔试题目:二叉树路径权值和【转】
下一篇:java生产者消费者模型到精通_java生产者消费者模型

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月13日 00时56分04秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章