Loop over lines character by character
本问题已经有最佳答案,请猛点这里访问。
我试图将一系列字母视为数组,以便在for循环、逐行、逐元素中循环遍历每个字母。
提取列后,我的
1 2 3 4 5 | ACACACACACA CGCGCGCGGGG TATATATAAAA GAGAAAGAAGG TGGTTTTGGTG |
我的剧本:
1 2 3 4 5 6 7 | 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 |
给出输出:
1 2 3 4 | ACACACACACA CGCGCGCGGGG TATATATAAAA ... |
我希望输出看起来像:
1 2 3 4 5 6 7 8 9 10 | A C A C A C ... G T G |
我的语法有问题吗?还是有更好的方法来调用行中的每个元素?
最短的选项:
1 | fold -1 <<<"$data" |
这不是纯粹的狂欢,但这会让你得到你想要的:
1 2 3 4 | for j in `echo $data | grep -o .` do echo $j done |
grep命令匹配每一个字符并打印出来(或者在本例中,将其存储在变量j中,我假设您打算在其中执行的不仅仅是echo它)。
假设它总是大写字母:
1 2 | $ sed 's/[A-Z]/& /g' inputFile |
或者使用下面的内容将任何字符和数字替换为相同的字符或数字,后跟换行符。
1 2 | $ sed 's/./& /g' inputFile |
或者如果你有
1 | $ fold -w1 inputFile |