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命令实战详解的更多相关文章

  1. Linux vmstat命令实战详解

    vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.这个命令是我查看Linux/Unix最 ...

  2. (转)Linux vmstat命令实战详解

    vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.这个命令是我查看Linux/Unix最 ...

  3. [svc]Linux vmstat命令实战详解

    vmstat输出 注:是cpu 内存 磁盘 虚拟内存交换情况 io读写情况 vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存 ...

  4. 【转】Linux vmstat命令实战详解

    好久没写博客了,上个月忙的晕头转向的实在没有心情.最近会发几篇PowerDNS的,先预告一下. 这篇是纯转的,原贴地址:http://www.cnblogs.com/ggjucheng/archive ...

  5. Linux命令学习笔记- vmstat命令实战详解

    vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.这个命令是我查看Linux/Unix最 ...

  6. shell编程系列23--shell操作数据库实战之mysql命令参数详解

    shell编程系列23--shell操作数据库实战之mysql命令参数详解 mysql命令参数详解 -u 用户名 -p 用户密码 -h 服务器ip地址 -D 连接的数据库 -N 不输出列信息 -B 使 ...

  7. Linux Shell脚本编程--nc命令使用详解

    linux nc命令使用详解     功能说明:功能强大的网络工具 语 法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>] ...

  8. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

  9. (转)shell中test命令方法详解

    test命令用法.功能:检查文件和比较值 shell中test命令方法详解 原文:https://www.cnblogs.com/guanyf/p/7553940.html 1)判断表达式 if te ...

随机推荐

  1. JAVASCRIPT——文字出现效果练习

    写一句诗.诗的最初状态是隐藏的,效果是让诗缓慢出现,直到显示完全 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional// ...

  2. Jquery Mobile 记录

    使用的是C#语言,.Net+Jquery Mobile 框架开发 1.使用水平组切换操作 <fieldset id="Tfdset1" data-role="con ...

  3. oracle中的B-TREE索引

    在字段值情况不同的条件下测试B-TREE索引效率 清空共享池和数据缓冲区alter system flush shared_pool;alter system flush buffer_cache; ...

  4. 自定义代码块移植,将Xcode中自定义的代码块导出发送到另一台mac

    在终端输入 cd /users/xiefan/library/developer/xcode/userdata/codeSnippets xiefan是我的用户名,记得换成自己的用户名 进入CodeS ...

  5. vuejs 三级联动

    最近在学习vuejs,写了一个城市三级联动效果,可以用在项目中的收获地址管理,支持新增与修改操作 HTML <script src="https://npmcdn.com/vue/di ...

  6. 解决Button在IE6、7下的自适应宽度问题

    很早就遇到过这么个小问题,但由于其并未影响到实际作用和美观就没有正面解决它,现在,我们来试着解决它. 写一个Button,有两种方式:其一,直接button标签:其二,input type=”butt ...

  7. requirejs + vue 项目搭建2

    上篇是年后的项目搭建的,时间比较仓促,感觉有点low 1.gulp-vue 文件对公用js的有依赖,以后别的同事拿去搭其他项目,估计会被喷 2.不支持vue-loader一样写模版语言和es6语法 最 ...

  8. Oracle EBS-SQL (PO-5):采购订单控制信息查询.sql

    select distinct pla.po_header_id, --pha.type_lookup_code, pha.segment1       采购订单号, appf.full_name   ...

  9. 通过jpegoptim批量压缩文件

    #!/bin/sh filelist=$(ls) for file in $filelist do if [ -d $file ] then du -h $file /usr/local/bin/jp ...

  10. GDKOI 2016

    GDKOI 2016 day 1 第一题 魔卡少女 题目描述:维护一个序列,能进行以下两个操作:1.将某一个位置的值改变.2.求区间的连续子串的异或值的和. solution 因为序列的数的值都小于\ ...