Advertisement
xisberto

Paginador

Jan 14th, 2013
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.18 KB | None | 0 0
  1. #!/bin/bash
  2. # Este script separa um arquivo de texto em "páginas" contando as linhas do arquivo.
  3. # É um script rudimentar, apenas para estudo de caso.
  4. # Recebe dois parâmetros: o nome do arquivo de texto e o número de linhas por página.
  5.  
  6.  
  7. arq=$1
  8. page_size=$2
  9.  
  10. # Conta o número de arquivos gerados pelo script
  11. count_arq=0
  12. # Conta o número de linhas do arquivo original
  13. max_lines=`wc -l $arq | cut -f1 -d' '`
  14.  
  15. # Abaixo há um loop for que conta de 1 até o número total de linhas,
  16. # o incremento deste loop é o número de linhas por página fornecido
  17. # como parâmetro
  18. for (( i = 1 ; i <= $max_lines ; i = i + $page_size ))
  19. do
  20.     # Cada página começa do valor atual de i
  21.     start=$i
  22.     # O fim da página é a linha anterior da próxima página
  23.     # Início desta página mais tamanho da página menos 1
  24.     end=`expr $i + $page_size - 1`
  25.     # Incrementamos o número de arquivos gerados
  26.     count_arq=`expr $count_arq + 1`
  27.     # Aqui dois comandos echo só para debug
  28.     echo "PÁGINA $start - $end"
  29.     echo "ARQUIVO $arq-$cound_arq"
  30.     # Usando o comando sed para selecionar que linhas serão impressas
  31.     sed "$start,$end!d" $arq > $arq-$count_arq
  32. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement