我的数据集中有一列,其中包含有关不同分离株(个体)中不同基因簇的信息。此列中的数据格式为:“ isolate_cluster”。隔离群和聚类都是数字,因此第12个隔离群中的第14个聚类可能是12_14。它们最初被命名为12mAF_cluster14,但是我已经在下面使用流编辑器对其进行了重命名,以便输入到while循环中的“ temp”文件应仅包含12_14。
但是,我无法在循环中正确分配变量。我试过回显变量,它似乎没有分配它们。我不知道为什么:
#!/bin/sh
for j in {1..1}
do
awk -F',' 'NR>1{print $13}' mAF_cluster"$j" | sed 's/"//g' | sed
's/BGC/BGC_BGC/' | sed 's/mAF//' | sed 's/cluster//'> temp
#
while read; do
isolate=`sed 's/_.*//' "$REPLY"`
cluster=`sed 's/^.*_//' "$REPLY"`
awk 'NR=="$cluster" {print $2}' /path/"$isolate"mAF_genome_test/geneclusters.txt
done < <(cat temp) > temp3
#
done
我反复得到错误消息,它无法在/path/mAF/genome_test/geneclusters.txt中找到文件
因此表明它没有正确读取我的“ $ isolate”变量。 当我添加时(在while循环内)
echo "$isolate"
echo "$cluster"
输出文件完全为空。 我该如何处理?