Adicione números no início de cada linha e substitua asteriscos por números em um documento

2

Existe uma maneira no Linux do CentOS 7 para adicionar números às linhas de um documento. Qualquer método é OK, comando, código, script ou qualquer outra coisa. Eu tenho um documento e quero numerar as linhas.

Exemplo de entrada

Only I can change my life.
Good, better, best.
Life is 10% what happens to you and 90% how you react to it.

Saída

1 Only I can change my life.
2 Good, better, best.
3 Life is 10% what happens to you and 90% how you react to it.

Outra questão

Como posso alterar os asteriscos "*" no início de um texto com números?

Entrada

* Only I can change my life.
* Good, better, best.
* Life is 10% what happens to you and 90% how you react to it.

Saída

1 Only I can change my life.
2 Good, better, best.
3 Life is 10% what happens to you and 90% how you react to it.
    
por Peter Mortensen 05.10.2018 / 17:43

3 respostas

4

Para numerar todas as linhas, use nl , o N < Utilitário de / strong> umber L ines:

nl -ba input

O sinalizador significa: use um estilo de numeração b ody de a ll linhas.

Para numerar apenas linhas não em branco, use:

nl -bt input

nl fornece uma variedade de recursos para formatar os números; Por padrão, ele separa os números com uma guia; para um único espaço, use -s' ' . Ele também assume uma largura de coluna padrão para os números; Se você não quiser esse espaço de preenchimento, use -w 1 .

Para substituir os principais caracteres por sed, consulte Substituindo a primeira ocorrência de um padrão em uma linha, por todas as linhas em um arquivo com sed , por exemplo:

sed 's/^\*//' input

... onde o * tem que ser salvo porque é um token de expressão regular que significa zero ou mais do item anterior. Embora não exista nenhum item anterior (é uma âncora que significa início de linha), é um hábito melhor escapar dela.

    
por 05.10.2018 / 17:47
2

Para adicionar números a um documento:

cat -b file > output_file
-b, --number-nonblank    number nonempty output lines, overrides -n    

Para gravar um arquivo na saída padrão, com números de linha adicionados em vez de asteriscos.

cat file | sed 's/*//' | nl > output_file
    
por 05.10.2018 / 17:47
0
input:

Only I can change my life.
Good, better, best.
Life is 10% what happens to you and 90% how you react to it


output:

[root@praveen_2 ~]# cat -n input
     1  Only I can change my life.
     2  Good, better, best.
     3  Life is 10% what happens to you and 90% how you react to it.


command:cat -n input


=============================================================================
second questtion

input
* Only I can change my life.
* Good, better, best.
* Life is 10% what happens to you and 90% how you react to it

output

cat -n input| sed 's/\*//g'
     1   Only I can change my life.
     2   Good, better, best.
     3   Life is 10% what happens to you and 90% how you react to it


command:cat -n input| sed 's/\*//g

'

    
por 06.10.2018 / 19:27