Как повторить значения из определенного столбца? - PullRequest
1 голос
/ 24 июня 2019

Я хотел бы повторить, что некоторые значения соответствуют номеру предыдущего столбца.

У меня есть этот вход:

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

1 Ответ

3 голосов
/ 24 июня 2019

Я думаю, что 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 < file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...