Script - linhas numéricas

1

Eu gostaria de criar um script, que permite ao usuário inserir algum texto e produzir o mesmo texto com o número de linhas.

Exemplo:

Entrada:

Hi Jack,
how are you?

Saída:

0001: Hi Jack,
0002: how are you?
    
por Mafi 04.05.2016 / 10:09

2 respostas

1

Uma solução simples com read :

I=0; while read -r; do ((I++)); echo "$I: $REPLY"; done< test.txt;

onde você pode alterar o test.txt para o seu argumento de script.

Se você não quiser usar a variável bash REPLY :

I=0; while read -r LINE; do ((I++)); echo "$I: $LINE"; done< test.txt;

ou outra coisa em vez de "LINE"

    
por 04.05.2016 / 10:33
0

Você pode canalizar a saída por meio de nl

Exemplo

ls /etc | head | nl --number-separator=$':\t' --number-format=rz --number-width=4
0001:   alternatives
0002:   bash.bash_logout
0003:   bash.bashrc
0004:   bash_completion.d
0005:   csh.cshrc
0006:   csh.login
0007:   dbus-1
0008:   defaults
0009:   drirc
0010:   fonts

Se você quiser que a separação entre os dois-pontos ( : ) e o texto de entrada sejam apenas um único espaço, altere o argumento --number-separator de $':\t' para ': ' .

    
por 04.05.2016 / 10:20

Tags