Repetir 3000 vezes uma sequência de caracteres “OW HW1 HW2” em uma coluna [duplicada]

4

Eu gostaria de ter a seguinte sequência: OW HW1 HW2 sendo repetido em um arquivo de saída 3000 vezes como:

OW
HW1
HW2
.
.
.
OW
HW1
HW2

Eu acredito que posso, usando o bash, definir o OW, HW1 e HW2 como variável independente e, em seguida, fazer um loop do loop de 3000 vezes e imprimir os valores no arquivo de saída.

    
por Dimitris Mintis 12.10.2018 / 13:45

7 respostas

12

Você pode usar esse truque printf com um especificador de string de comprimento zero %.0s e expansão de chave:

printf '%.0sOW\nHW1\nHW2\n' {1..3000} > newfile
    
por 12.10.2018 / 14:17
7

Pode ser feito facilmente com o Perl:

perl -e'print "OW\n\HW1\nHW2\n"x3000'
    
por 12.10.2018 / 14:33
6

Se usar for in cycle:

for i in $(seq 1 3000) ; do echo -e "OW\nHW1\nHW2"; done

ou use o echo 3x

for i in $(seq 1 3000) ; do echo OW; echo HW1; echo HW2; done
    
por 12.10.2018 / 14:03
4

Você poderia simplesmente usar yes e head para gerar essa sequência 3000 vezes.

yes $'OW\nHW1\nHW2' | head -9000

Aqui você precisa do 9000 porque tem 3 linhas e deseja essas 3 linhas 3000 vezes.

    
por 12.10.2018 / 19:35
3

Se o seu shell oferecer "expansão de contraventamento", tente

echo $'\nOW\nHW1\nHW2\n'{1..3000}$'\n' | grep -Ev "^( |[0-9])*$"
OW
HW1
HW2
OW
HW1
HW2
OW
HW1
HW2
.
.
.

e redirecionar para um arquivo, se estiver satisfeito com o resultado.

    
por 12.10.2018 / 14:15
0

você pode usar um loop while como aqui: link

Um exemplo:

COUNTER=0; while [ $COUNTER -lt 3 ]; do echo "$COUNTER" && COUNTER=$((COUNTER+1)); done

Não se esqueça de redefinir o COUNTER toda vez que você quiser executar isso.

    
por 12.10.2018 / 13:59
0

Solução Python3

python3 -c 'print("OW\nHW1\nHW2\n"*3000, end="")' 
    
por 14.10.2018 / 00:53

Tags