shell命令实战详解
1、解析路径获取文件名和目录名。
获取文件名
#awk解法:用“/”做分隔符,然后打印出最后的那一部分。
- resFile=`echo /tmp/csdn/zhengyi/test/adb.log | awk -F "/" '{print $NF}'`
#官方解法(basename):Bash Shell本身提供了basename命令,可以直接获取路径名最后的文件名。
- resFile=`basename /tmp/csdn/zhengyi/test/adb.log`
获取目录名
#awk解法:可以灵活的使用分隔符,混合正则表达式。
- dirPath=`echo /tmp/csdn/zhengyi/test/adb.log | awk -F '/[^/]*$' '{print $1}'`
#awk+for循环的方法
- echo /tmp/csdn/zhengyi/test/adb.log | awk 'BEGIN{res=""; FS="/";}{ for(i=2;i<=NF-1;i++) res=(res"/"$i);} END{print res}'
#官方解法(basename):Bash Shell本身提供了dirname命令,特别方便,可以直接获取路径对应的目录名。
- dirPath=`dirname /tmp/csdn/zhengyi/test/adb.log`
2、Soap文件中求出每个染色体的总测序长度(即第6列的加和)。
- => head test.soap
- SIMU_0001_00000001/ AAATATGTGGATATAAACACATTCCTAAATAACCG hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh a - chr1 A->11T40 35M 11A23
- SIMU_0001_00000002/ CCGGGGCCCAGCGCAGGGGCTGATGAGAAGGCACT hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh a - chr2 35M
- SIMU_0001_00000003/ TTCCCCTTTGATCTGATGTCCACCTGGAAACCGTG hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh a - chr2 35M
- SIMU_0001_00000004/ TTTATATGGTGTTAGCCTTTCTTCCAAATTTTAAG hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh a - chr3 A->14G40 35M 14A20
- SIMU_0001_00000005/ ACCCATGGCAGACCCCCTTATCTTAACTCAAGTGT hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh a - chr1 A->2C40 35M 2A32
- SIMU_0001_00000006/ GCTTACACTGGAATTAACAAGTTTTAGTATATTAT hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh a - chr10 35M
- SIMU_0001_00000009/ TTTTCTTCTATGAAGTTTGGGAGAAAAGTCAAGAT hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh a - chr1 35M
- SIMU_0001_00000010/ GGTCACCACAGAATATGATATAAATAAGATAAATA hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh a - chr2 35M
- SIMU_0001_00000011/ TACTTTTGGATTATATGCTAAACAGTGTGACTATA hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh a - chr1 35M
- SIMU_0001_00000013/ TTCCCTGGTAAGGGCTCATGCCTTGGCACTGAGGG hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh a - chr12 35M 35
#awk代码实现:
- => head test.soap |awk '{a[$8]+=$6}END{for (i in a) print i,"\t",a[i]}'
- chr10
- chr12
- chr1
- chr2
- chr3
3、Linux下用awk计算Fasta序列的长度
- => cat contig.fa
- > cvg_0.0_tip_0
- ATTTTGGCTTTGGAAGGGC
- > cvg_0.0_tip_0
- GAATAGTGATACAAATTATATAGTTTCAAGTATGTGACTTGAACATGAGATTAT
- > cvg_0.0_tip_0
- TAATCTAGGCTTGAAACTATATAATTTGTATCACTATTCTAAGGATTTTTTT
首先通过下面的命令将fasta序列转换成一行显示,命令如下:
- => awk '/^>/&&NR>1{print "";}{ printf "%s",/^>/ ? $0" ":$0 }' contig.fa
- 或者:
- => awk '{ printf "%s",/^>/ ? $0" ":$0"\n" }' contig.fa
得到如下结果:
如果想直接显示每条序列的长度,可以运行如下命令:
- => awk '/^>/&&NR>1{print "";}{ printf "%s",/^>/ ? $0" ":$0 }' contig.fa |awk '{print $1"\t"length($3)}'
得到结果如下:
- >
- >
- >
shell命令实战详解的更多相关文章
- Linux vmstat命令实战详解
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.这个命令是我查看Linux/Unix最 ...
- (转)Linux vmstat命令实战详解
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.这个命令是我查看Linux/Unix最 ...
- [svc]Linux vmstat命令实战详解
vmstat输出 注:是cpu 内存 磁盘 虚拟内存交换情况 io读写情况 vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存 ...
- 【转】Linux vmstat命令实战详解
好久没写博客了,上个月忙的晕头转向的实在没有心情.最近会发几篇PowerDNS的,先预告一下. 这篇是纯转的,原贴地址:http://www.cnblogs.com/ggjucheng/archive ...
- Linux命令学习笔记- vmstat命令实战详解
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.这个命令是我查看Linux/Unix最 ...
- shell编程系列23--shell操作数据库实战之mysql命令参数详解
shell编程系列23--shell操作数据库实战之mysql命令参数详解 mysql命令参数详解 -u 用户名 -p 用户密码 -h 服务器ip地址 -D 连接的数据库 -N 不输出列信息 -B 使 ...
- Linux Shell脚本编程--nc命令使用详解
linux nc命令使用详解 功能说明:功能强大的网络工具 语 法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>] ...
- Linux Shell脚本入门--wget 命令用法详解
Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...
- (转)shell中test命令方法详解
test命令用法.功能:检查文件和比较值 shell中test命令方法详解 原文:https://www.cnblogs.com/guanyf/p/7553940.html 1)判断表达式 if te ...
随机推荐
- C# 中的委托和事件详解
C# 中的委托和事件 文中代码在VS2005下通过,由于VS2003(.Net Framework 1.1)不支持隐式的委托变量,所以如果在一个接受委托类型的位置直接赋予方法名,在VS2003下会报错 ...
- 02Android用户界面优化之(一)Android Fragment
一.使用Fragment 1.AndroidManifest.xml文件 <?xml version="1.0" encoding="utf-8"?> ...
- 利用java生成带有干扰线的网页验证码图片
package imageCreate; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import j ...
- STOI补番队胡策
ROUND 1 第一轮是我出的. 比赛情况: #1 NanoApe 300 (完美AK) #2 && #3 swm_sxt / ccz 200 A.candy 这道题就是个nim游戏 ...
- dpkg, APT, aptitude常用命令
Install dpkg --install, -i [deb] apt-get install [package] aptitude install [package] Remove dpkg -- ...
- matlab求方差,均值,均方差,协方差的函数
1. 均值 数学定义: Matlab函数:mean >>X=[1,2,3] >>mean(X)=2 如果X是一个矩阵,则其均值是一个向量组.mean(X,1)为列向量的均值,m ...
- js 中的for...in循环
in:其左边是一个字符串或可以转换成字符串,右边是一个对象或数组 例:var person={firstname:"Bob", lastname:"Kin"}; ...
- android studio SVN的搭建
android studio 安装 SVN:http://www.it165.net/pro/html/201404/11412.html http://jingyan.baidu.com/album ...
- 利用jQuery打造个性网站
网页结构 编写全局样式(reset.css) /*全局样式*/ body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fi ...
- fragment中listview触发事件setOnItemClickListener不好使
<listView/>中// listview点击 ,高度wrap_content改成fill_prarent