在bash中将外部程序处理到另一个目录后,如何组织正确的结果写入方式?
我正在编写一个简单的代码来自动处理外部程序RNAfold。在本期中,我创建了一个目录,其中文件夹包含我发送给RNAfold的初始数据,以获得我想在另一个文件夹中写入的一些结果。我面临着从RNAfold重定向结果的问题。我需要修什么在bash中将外部程序处理到另一个目录后,如何组织正确的结果写入方式?,bash,Bash,我正在编写一个简单的代码来自动处理外部程序RNAfold。在本期中,我创建了一个目录,其中文件夹包含我发送给RNAfold的初始数据,以获得我想在另一个文件夹中写入的一些结果。我面临着从RNAfold重定向结果的问题。我需要修什么 #! /bin/bash output_dir="$2" # an_level1/an_level2/an_level3 for file in ls "$1"/*.fa; do cbf="$(readlink -e "$(file)")" cbf
#! /bin/bash
output_dir="$2" # an_level1/an_level2/an_level3
for file in ls "$1"/*.fa; do
cbf="$(readlink -e "$(file)")"
cbf_fn="$(basename "$cbf")" #*.fa
filename_WO_ext="${cbf_fn%.*}" #*
RNAfold < "$file" > "${output_dir}/${filename_WO_ext}/.txt";done
#/bin/bash
output_dir=“$2”_level1/an_level2/an_level3
对于ls“$1”/*.fa中的文件;做
cbf=“$(readlink-e“$(文件)”)
cbf#u fn=“$(basename“$cbf”)”#*.fa
filename_WO_ext=“${cbf_fn%.*}”#*
RNAfold<“$file”>“${output\u dir}/${filename\u WO\u ext}/.txt”;完成
将您的脚本粘贴到那里:@Cyrus,谢谢。我修复了包,但我不确定这个bash脚本是否是解决我的问题的正确解决方案“我面临重定向结果的问题”-如果您具体说明问题是什么,它会有所帮助。不要对ls“$1”/*.fa中的文件使用,无论是否使用单引号或反勾号。只需对“$1”/*.fa
中的文件执行。确实要在此处执行文件吗?:cbf=“$(红线-e“$(文件)”)”
您可能应该删除内括号:cbf=“$(红线-e“$文件”)”
。当然,readlink
应该是readlink
?@DennisWilliamson,readlink
。我想将此文件发送到外部程序RNAfold,并将每个文件的结果保存在另一个文件夹中。我的意思是:我在~\DataFromRfam(~\DataFromRfam\RF00001.fa)中有RF00001.fa。我调用RNAfold并将结果保存在文件夹~\Results中的文件RF0001.txt-RNAfold>~\DataFromRfam\RF00001.fa好吧,你问题中的代码对我来说没什么问题(除了我在第一条评论中提到的东西)。但你在最后一条评论中所说的完全错误。除非您在Windows上,否则路径分隔符应该是斜杠(/
)而不是反斜杠(`\`),并且重定向是向后的。请将脚本粘贴到此处:@Cyrus,谢谢。我修复了包,但我不确定这个bash脚本是否是解决我的问题的正确解决方案“我面临重定向结果的问题”-如果您具体说明问题是什么,它会有所帮助。不要对ls“$1”/*.fa中的文件使用,无论是否使用单引号或反勾号。只需对“$1”/*.fa
中的文件执行。确实要在此处执行文件吗?:cbf=“$(红线-e“$(文件)”)”
您可能应该删除内括号:cbf=“$(红线-e“$文件”)”
。当然,readlink
应该是readlink
?@DennisWilliamson,readlink
。我想将此文件发送到外部程序RNAfold,并将每个文件的结果保存在另一个文件夹中。我的意思是:我在~\DataFromRfam(~\DataFromRfam\RF00001.fa)中有RF00001.fa。我调用RNAfold并将结果保存在文件夹~\Results中的文件RF0001.txt-RNAfold>~\DataFromRfam\RF00001.fa好吧,你问题中的代码对我来说没什么问题(除了我在第一条评论中提到的东西)。但你在最后一条评论中所说的完全错误。除非您在Windows上,否则路径分隔符应该是斜杠(/
)而不是反斜杠(`\`),并且重定向是向后的。