【发布时间】:2019-03-07 22:41:51
【问题描述】:
我试图将一系列字母视为一个数组,以便在 for 循环中逐行、逐个元素地循环遍历每个字母。
提取列后我的$data 看起来像:
ACACACACACA
CGCGCGCGGGG
TATATATAAAA
GAGAAAGAAGG
TGGTTTTGGTG
我的脚本:
for j in `cat $data` # go line by line
do
for k in "${j[@]}" # go through each letter element by element
do
echo $k
done
done
给出输出:
ACACACACACA
CGCGCGCGGGG
TATATATAAAA
...
我希望输出看起来像:
A
C
A
C
A
C
...
G
T
G
我的语法有问题吗?或者有没有更好的方法来调用该行的每个元素?
【问题讨论】:
-
不确定这里的
for循环,但您可以执行cat $data | sed 's/./&\n/g'来获得此输出。或awk:cat $data | awk 'BEGIN{FS="";OFS="\n"}{$1=$1}1' -
绝对应该是'echo'而不是'cat'。否则,该命令将尝试对一个名为任何文件的文件进行分类,这显然不是你想要的。
-
tr -d '\n' < "$data" | sed 's/./&\n/g' -
echo ACACACACACA | awk 'BEGIN{FS=""}{for (i=1;i<=NF;i++){print $i}}'可能会给你一个线索。祝你好运。