我想重复一些对应于前面几个专栏的值。
我有这样的输入:
2 miR-5
3 miR-10
1 miR-4
4 miR-6我想要这样的输出:
miR-5
miR-5
miR-10
miR-10
miR-10
miR-4
miR-6
miR-6
miR-6
miR-6发布于 2019-06-25 04:06:23
我认为bash不适合这个任务,它不是针对文本操作进行优化的,它最适合你想要产生一些进程或操作文件等的任务。在大多数情况下,简单的文本操作任务可以用awk来完成。下面的代码为您的输入文件生成所需的输出:
$ cat file
2 miR-5
3 miR-10
1 miR-4
4 miR-6
$ awk '{for (i=1; i<=$1; i++) print $2}' file
miR-5
miR-5
miR-10
miR-10
miR-10
miR-4
miR-6
miR-6
miR-6
miR-6为了完整地使用问题中的标记,下面是如何在bash中完成此操作:
#!/bin/bash
while read -r num rest
do
for ((i=1;i<=num;i++))
do
printf '%s\n' "$rest"
done
done < filehttps://stackoverflow.com/questions/56743148
复制相似问题