【发布时间】:2014-03-28 17:58:56
【问题描述】:
如何保存在 awk 语句中打印出来的数据?能够访问变量或数组?它经过的每个文件以及所有文件的总和都有 4 个值 (GATC)。如果找到符合标准的文件,它会迭代并打印每一行,并添加它找到的每行的数量,总共四个。不过,我需要稍后才能访问这些信息。虽然它找到的不一定是线条,但我不需要。如何保存到我认为是最好的方法的数组中?
for f in $FILES
do
[ -d "$f" ] && continue
if is_file_contains_DNA $f; then
echo "DNA exist in " $f >> $SUMMARYPATH
#touch $OUTFILENAME$f
awk '/^ATOM/&&substr($0,20,1)~/[GATC]/{print;l++;a[substr($0,20,1)]++}END{printf "total line : %s\n",l;for (i in a) printf "%s : %s \n",i,a[i]}' $f >> $RESULTSPATH$OUTFILENAME$f
else
echo "DNA DOES NOT exist in "$f >> $SUMMARYPATH
fi
done
补充一点:
可能有更简单的解决方案。我可以使用“awk”而不是一个打印出两个文件吗?所以我想打印我现在拥有的结果文件,然后添加到单个“SUMMARY”文件中,就像我为 awk 之前的行所做的那样?
【问题讨论】:
-
array=($(awk command))? -
我不想要每一行完整的数据,如果这有意义的话,只是标准的迭代计数器?它正在寻找 GATC 和每次命中,我想添加到计数器并跟踪它以及我想添加到数组列表中的每个文件。因此,第一个数组 [1] 将包含每个 GATC 的总数以及所有这些的总数...第二个数组 [2] 将包含文件 2,依此类推...