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 ...
随机推荐
- 在Fedora 23 Server和Workstation上安装LAMP(Linux, Apache, MariaDB和PHP)
在安装LAMP之前,建议先更新系统包$ sudo dnf update 第一步:安装Apache Web服务器1.在Fedora 23安装Apache,你可以运行下面的命令:$ sudo dnf in ...
- hdu1358Period
Problem Description For each prefix of a given string S with N characters (each character has an ASC ...
- css单位和值
css需要单位来度量.内含整数.小数.百分数的情况,很多条件下支持正负的情况,当然是有限制的了.百分数基本是相对于自身.或是父或是祖先元素的某个属性值. 颜色 颜色的表示分为:命名颜色 ...
- 【2012noip提高组】借教室
在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要 向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息,我们自然希望编程 ...
- map循环
Map<String, String> maps = new HashMap<String, String>(); maps.put("_id", &qu ...
- 转:一个跨WINDOWS LINUX平台的线程类
来源:http://blog.csdn.net/dengxu11/article/details/7232681 继Windows下实现一个CThread封装类之后,这里我再实现一个跨WINDOWS ...
- 在 Linux ubuntu 上安装 *.sh 文件
简单说来就两步: 增加可执行权限 执行 事情是这样的,打算在 ubuntu 上安装一个 NetBeans IDE 来学习 Java,但是下载下来的文件是 .sh 格式的.图形界面下右键没有执行的选项. ...
- HCE:Host-based Card Emulation基于Android设备的卡片模拟器
HCE技术支持提供了一个软实现SE的通路,Service实现的方式很多,可以使用文件,使用网络,甚至连接真正的SE.支持HCE的测试手机:目前可以确定使用了NXP PN547作为CLF的NFC手机已经 ...
- 论山寨手机与Android 【11】移动网络规范的合纵连横
上一章我们讨论了SmartPhone BP部分的硬件系统,接下去我们将讨论SmartPhone BP部分的软件系统.所谓BP,指的是基带处理器(Baseband Processor),又称为通讯处理器 ...
- java中读取程序运行时间
第一种是以毫秒为单位计算的. Java代码 //伪代码 long startTime=System.currentTimeMillis(); //获取开始时间 doSomeThing(); // ...