Problemas com o comando Cat [closed]

0

Eu estou olhando para numerar meus parágrafos dentro de um arquivo de texto, eu tenho certeza que eu tenho que usar o comando cat -n ou cat -b , mas não sei como usá-lo, alguém poderia expandir isso por favor.

    
por xGecko 09.10.2015 / 16:43

3 respostas

1

cat -n file.txt exibirá o conteúdo do arquivo.txt com números de linha.
Se você deseja ter os números de linha no arquivo, use um redirecionamento de E / S como cat -n file.txt > file1.txt .
Mas eu não acho que há uma opção para numerar parágrafos.

    
por 09.10.2015 / 16:50
0

O grep pode dizer quantas linhas vazias existem no arquivo. Isso geralmente será 1 menos que o número de parágrafos. A menos que haja linhas extras em branco no texto.

grep -c '^$' file.txt | wc -l

Ele também pode informar quantas linhas não vazias existem. Eu imaginaria que se seus parágrafos fossem escritos continuamente sem novas linhas, isso funcionaria.

grep -cv '^$' a | wc -l
    
por 09.10.2015 / 17:10
0

Como as outras respostas indicam, cat não é uma ferramenta muito apropriada para isso.

Como eu disse no meu comentário, sua pergunta está mal definida porque você não especifica como o comando deve reconhecer os parágrafos. Uma maneira de fazer isso é pela primeira linha sendo recuada. nl -bp"^ " é um comando bastante adequado para lidar com essa forma de entrada:

$ cat text1
Some Verse
 The quick brown fox
jumps over the lazy dog.
 The Owl and the Pussy-cat went to sea
In a beautiful pea green boat,

$ nl -bp"^ " text1
       Some Verse
     1   The quick brown fox
       jumps over the lazy dog.
     2   The Owl and the Pussy-cat went to sea
       In a beautiful pea green boat,

Outra maneira é usar linhas em branco como separadores. awk é muito bom em lidar com esse tipo de coisa.

$ cat num_pp
#!/bin/sh
awk 'BEGIN    {start=1}
     /^$/     {start=1}
    {
        if ($0 != ""  &&  start) {
                print ++ppnum, $0
                start=0
        } else print
    }' "$@"

$ cat text2
Some Verse
 The quick brown fox
jumps over the lazy dog.

The Owl and the Pussy-cat went to sea
 In a beautiful pea green boat,

$ ./num_pp text2
1 Some Verse
 The quick brown fox
jumps over the lazy dog.

2 The Owl and the Pussy-cat went to sea
 In a beautiful pea green boat,
    
por 09.10.2015 / 18:31

Tags