美文网首页生物信息学
linux数据流处理技巧

linux数据流处理技巧

作者: wo_monic | 来源:发表于2019-08-28 20:58 被阅读0次
创建基于当前日期的文件
mkdir result-$(date +%F)   //生成result-2019-08-28格式的文件
把一个命令的输出结果嵌入另一个命令里
``等价于$()  把要引用的值的命令放在``或$()内
grep -c '^>' maize.fa
echo "this file total have `grep -c '^>' maize.fa` sequence.
echo "this file total have $(grep -c '^>) maize.fa` sequence.
程序前后台运行

& nohup screen
mv test1 test2 & 程序后台运行

程序运行后,按下CTRL+Z暂停程序,可以用如下的命令分别置程序于后台或前台运行。

bg %1 进程1后台运行
fg %1 进程1前台运行

或者是nuhup

nuhup会向标准输出流的文件前面加上nohup的log信息,有些后续程序在运行nohup挂起的输出文件时,可能会因为头部的多余信息而报错

screen

screen是新开的屏幕,可以把screen挂起到后台继续运行

常规程序pipeline

echo analysis start at $(date +%x_%X)   #输出程序开始的时间
mkdir programe_result-$(date +%F)   #创建格式为程序名+日期格式的文件
nohup porgrame  2>./result-$(date +%F)/error-`date +%X` & #后台运行程序,同时将错误输出流重定向到上面新建的文件,以error+时间来命名。

程序的进程控制用于链式编程

&&前一个执行成功后,再执行后一个程序。
||前一个执行失败后,再执行后一个程序。

ls -l nide.xs && find -a "^>" mide.fa ##前一个程序成功就执行后续命令
cd test || mkdir test   ##前一个命令执行错误时,执行后一个命令。

例1:如果想把工作目录移到运行环境的result目录,如果不存在则创建该目录
cd result || mkdir result && cd result
例2:如果执行某个命令出错,则报出错误位置信息。
samtools -sort index.fa || echo "error in samtools"

time命令

time command1

完整的命令例子:

nohup time java -jar picard.jar test  2>error-`date +%F &`

nohup挂起程序
time计算程序运行时间
2>error-`date +%F` 错误信息重定向

路径尽量使用相对路径

相对路径...开头的路径
绝对路径/或字符开头的路径

使用断点

Python里面是assert(),而R里面是 stopifnot()

使用正则表达式

例如当前目录有以下文件,

├── NS-1.map.sam
├── NS-2.map.sam
├── NS-3.map.sam
├── WT-1.map.sam
├── WT-2.map.sam
└── WT-3.map.sam

ls -lh {NS,WT}-{1..3}.map.sam
可以匹配到当前目录所有的文件。

数字命名

使用数字时尽量使用01,001代替1

每个程序要写文档

注意文档应该包括以下内容:

  • 程序功能、运行目录
  • 命令的所依赖的程序或包,以及对应的版本
  • 作者信息、日期
  • 脚本的每一步尽量加上注释信息
  • 在readme中说明运行目录的文件结构,自定义的特殊的文件需要说明数据类型
变量或函数命名
  • 函数命名尽量结合功能进行命名
  • 命名格式尽量统一,驼峰命名(UesrName)或者下划线命名(user_name).根据项目组或者团队或者个人习惯统一使用一种命名法。
    个人偏向下划线命名法
  • 变量和函数的命名的字符尽量不要太长

相关文章

  • linux数据流处理技巧

    创建基于当前日期的文件 把一个命令的输出结果嵌入另一个命令里 程序前后台运行 & nohup screenmv t...

  • stdin、stdout、stderr

    是什么 Linux的三种标准数据流,执行Linux命令时自动创建 Linux 像处理文件一样对待数据流(可写可读)...

  • 推荐算法笔记07_工程实现与评估【上】

    推荐系统的数据流 典型数据流框架 批处理大数据架构 “分布式存储+Map Reduce”的架构只能批量处理已经落盘...

  • Linux命令行使用教程

    Linux基本单词 Linux缩写 Linux目录 Linux操作 Linux技巧 Linux自学命令行办法

  • 软件体系结构风格之一

    1. 管道和过滤器风格 【数据流风格,因为管道里都是数据流】 (1)构件:过滤器。它对输入流进行处理、转换。处理后...

  • Python Toolz 简易教程(2)-基本概念

    数据流 数据流就是以批量的形式读取、处理、存储巨量的数据。函数式编程为这种流处理提供了一种优雅、健壮的解决方案。 ...

  • Python asyncio 异步编程(三)

    asyncio 处理网络连接数据流 下面是处理网络连接的示例代码,连接三个网站,发送消息流,接收数据流。三个协程由...

  • redux

    一、同步数据流动 二、异步数据流动 说明:应用 middleware 后 redux 处理事件的逻辑,每一个 mi...

  • RxJava点点滴滴

    响应式编程是一种关注数据流和变化传递的异步编程方式 什么是数据流? 数据流被称为流处理传统上的程序指的是按照特定的...

  • Flink编程基础/基本框架

    Flink程序是对数据流,进行各种分布式处理/转换。通过sources创建输入的数据流(可以读取文件,从kafka...

网友评论

    本文标题:linux数据流处理技巧

    本文链接:https://www.haomeiwen.com/subject/tmamectx.html