systemadmin.es > Utilidades > Numerar lineas con nl

Numerar lineas con nl

Mediante nl podemos numerar la salida de un comando o un determinado fichero. Vamos a ver como funciona y sus parámetros más relevantes.

Podemos ejecutar nl sin opciones a un determinado fichero:

# nl /etc/my.cnf
     1  [mysqld]


     2  skip_external_locking


     3  datadir=/data/mysql/data
     4  tmpdir=/data/mysql/tmp
     5  max_connections = 500
     6  socket=/var/lib/mysql/mysql.sock
     7  user=mysql
     8  character-set-server=utf8

     9  log_slow_queries=1


    10  wait_timeout=3600
    11  max_allowed_packet=64M
    12  interactive_timeout=28800
    13  connect_timeout=5
    14  key_buffer=256M
    15  join_buffer_size=2M

    16  table_cache=512




    17  sort_buffer_size=6M
    18  tmp_table_size=128M
    19  record_buffer=2M
    20  net_buffer_length=64K
    21  myisam_sort_buffer_size=64M
    22  myisam_max_sort_file_size=128M
    23  read_buffer_size=1M
    24  thread_cache_size=128
    25  thread_stack=128K

    26  query_cache_size=768M

    27  query_cache_limit=2M

    28  net_read_timeout=60
    29  net_retry_count=20
    30  open_files_limit=8192
    31  long_query_time=1000000

    32  innodb_file_per_table

    33  innodb_buffer_pool_size = 120M


    34  tmp_table_size=128M
    35  max_heap_table_size=128M







    36  [mysqld_safe]
    37  log-error=/var/log/mysql/mysqld.log
    38  pid-file=/var/run/mysqld/mysqld.pid

    39  [client]
    40  default-character-set=utf8
    41  socket=/var/lib/mysql/mysql.sock

Por defecto vemos que no numera las lineas en blanco. Si deseamos que lo haga deberemos usar la opción a del parámetro -b (estilo de numeración):

# nl -ba /etc/my.cnf
     1  [mysqld]
     2
     3
     4  skip_external_locking
     5
     6
     7  datadir=/data/mysql/data
     8  tmpdir=/data/mysql/tmp
     9  max_connections = 500
    10  socket=/var/lib/mysql/mysql.sock
    11  user=mysql
    12  character-set-server=utf8
    13
    14  log_slow_queries=1
    15
    16
    17  wait_timeout=3600
    18  max_allowed_packet=64M
    19  interactive_timeout=28800
    20  connect_timeout=5
    21  key_buffer=256M
    22  join_buffer_size=2M
    23
    24  table_cache=512
    25
    26
    27
    28
    29  sort_buffer_size=6M
    30  tmp_table_size=128M
    31  record_buffer=2M
    32  net_buffer_length=64K
    33  myisam_sort_buffer_size=64M
    34  myisam_max_sort_file_size=128M
    35  read_buffer_size=1M
    36  thread_cache_size=128
    37  thread_stack=128K
    38
    39  query_cache_size=768M
    40
    41  query_cache_limit=2M
    42
    43  net_read_timeout=60
    44  net_retry_count=20
    45  open_files_limit=8192
    46  long_query_time=1000000
    47
    48  innodb_file_per_table
    49
    50  innodb_buffer_pool_size = 120M
    51
    52
    53  tmp_table_size=128M
    54  max_heap_table_size=128M
    55
    56
    57
    58
    59
    60
    61
    62  [mysqld_safe]
    63  log-error=/var/log/mysql/mysqld.log
    64  pid-file=/var/run/mysqld/mysqld.pid
    65
    66  [client]
    67  default-character-set=utf8
    68  socket=/var/lib/mysql/mysql.sock

Si además queremos que la numeración tenga el mismo tamaño (rellenamos con zeros delante) lo hacemos con la opción de formato -n. Las opciones són:

  • ln: Justificando a la izquierada, sin zeros para rellenar
  • rn: Justificando a la derecha, sin zeros para rellenar
  • rz: Justificando a la derecha, con zeros para rellenar

Un ejemplo con justificado a la derecha y con zeros de relleno sería:

# nl -ba -nrz /etc/my.cnf
000001  [mysqld]
000002
000003
000004  skip_external_locking
000005
000006
000007  datadir=/data/mysql/data
000008  tmpdir=/data/mysql/tmp
000009  max_connections = 500
000010  socket=/var/lib/mysql/mysql.sock
000011  user=mysql
000012  character-set-server=utf8
000013
000014  log_slow_queries=1
000015
000016
000017  wait_timeout=3600
000018  max_allowed_packet=64M
000019  interactive_timeout=28800
000020  connect_timeout=5
000021  key_buffer=256M
000022  join_buffer_size=2M
000023
000024  table_cache=512
000025
000026
000027
000028
000029  sort_buffer_size=6M
000030  tmp_table_size=128M
000031  record_buffer=2M
000032  net_buffer_length=64K
000033  myisam_sort_buffer_size=64M
000034  myisam_max_sort_file_size=128M
000035  read_buffer_size=1M
000036  thread_cache_size=128
000037  thread_stack=128K
000038
000039  query_cache_size=768M
000040
000041  query_cache_limit=2M
000042
000043  net_read_timeout=60
000044  net_retry_count=20
000045  open_files_limit=8192
000046  long_query_time=1000000
000047
000048  innodb_file_per_table
000049
000050  innodb_buffer_pool_size = 120M
000051
000052
000053  tmp_table_size=128M
000054  max_heap_table_size=128M
000055
000056
000057
000058
000059
000060
000061
000062  [mysqld_safe]
000063  log-error=/var/log/mysql/mysqld.log
000064  pid-file=/var/run/mysqld/mysqld.pid
000065
000066  [client]
000067  default-character-set=utf8
000068  socket=/var/lib/mysql/mysql.sock

One comment to “Numerar lineas con nl”

  1. También el comando cat puede contar numerar lineas usando los parametros -n y -b (no lineas blanco), simiar a nl.

    Saludos y muy buen sitio.

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>