#linux #bash #список
Подскажите как повторить каждую строку текстового документа нужное кол-во раз. Есть какая-нибудь простая и изящная команда на bash ? Спасибо
Ответы
Ответ 1
некоторые из множества вариантов, правда, использующие другие программы: $ sed 'p;p' файл $ perl -lpE 'say;say' файл $ awk '1;1;1' файл $ awk '{for(i=1;i<=3;i++)print}' файл а средствами программы bash не так изящно: $ while read line; do for i in {1..3}; do echo "$line"; done; done < файл каждый из приведённых примеров выведет утроенной каждую строку файла.Ответ 2
n=5 # изменить на нужное к-во # cat file.txt | while read string; do while read string; do for i in $(seq 1 $n); do printf '%s\n' "$string" # здесь не обязательно printf '%s\n' достаточно echo done done < file.txt # поправил в соответствии с конструктивной критикой ну или чтобы изящно quantity=5 # Изменить на нужное количество awk '{for(i=1;i<=count;i++)print}' count=$quantity file.txt
Комментариев нет:
Отправить комментарий