bash - 用于循环访问类似文件并输入命令的 Bash 脚本
问题描述
我是 bash 脚本的新手,目前正在尝试编写脚本但失败了。我有一个需要输入脚本的配对样本列表,该脚本会将 2 个文件合并为 1 个文件。合并2个文件的脚本是:
./mergePEsam.pl file1_1.sam file1_2.sam file.merge.sam
D3_524_1_tr.fq.gz.sam
D3_524_2_tr.fq.gz.sam
D3_525_1_tr.fq.gz.sam
D3_525_2_tr.fq.gz.sam
D3_526_1_tr.fq.gz.sam
D3_526_2_tr.fq.gz.sam
WT_541_1_tr.fq.gz.sam
WT_541_2_tr.fq.gz.sam
WT_542_1_tr.fq.gz.sam
WT_542_2_tr.fq.gz.sam
我正在尝试创建一个循环,该循环将使用上面的脚本通过并合并 sample_1.sam 和 sample_2.sam。到目前为止我写的失败的脚本是:
for r1 in "~scratch/leafcutter/olego.alignment"/*1_tr.fq.gz.sam; do
r2=${r1%_tr.fq.gz.sam}_tr.fq.gz.sam
if [[ -f $r2 ]] ; then
users/djaime/anaconda/leafcutter3/olego/mergePEsam.pl "$r1" "$r2" "${r1/_*/}".merge.sam
else
echo "$r2 not found" >&2
fi
done
帮助将不胜感激
解决方案
在当前脚本中,r2 设置为与 r1 相同的名称。从描述看,应该设置为_2文件。考虑将 _1 替换为 _2 的小修复:
r2=${r1%1_tr.fq.gz.sam}2_tr.fq.gz.sam
推荐阅读
- android - Android库:当“实施项目”用于库的模块依赖时,找不到类文件
- visual-studio - 构建失败,因为找不到在构建时从 t4 转换的类型
- ruby-on-rails - Rails — 签署 OAuth1 请求
- ios - 特定日期和时间的本地通知不起作用。迅速
- max - 限制最大值。宽屏显示器的宽度(引导程序)
- python - 纯python模式下的cython数组
- javascript - 如何最好地创建选项卡式内容组件、文件夹、方法结构
- php - 如何在jquery中解析json数据并附加到表行
- c# - C# Windows 服务立即“运行”而不是“启动挂起”
- javascript - 带节点的 Babel 7