Classifique tudo, exceto o cabeçalho [duplicado]

0

Às vezes, quero classificar as coisas, mas não o cabeçalho. Então, por exemplo, quando eu listo os módulos carregados no Apache, há um cabeçalho de 1 linha que é incluído na classificação:

 $ /usr/local/apache2/bin/apachectl -M | sort

 alias_module (shared)
 asis_module (static)
 cache_disk_module (static)
 cache_module (static)
 core_module (static)
 data_module (static)
 env_module (shared)
 ext_filter_module (static)
 file_cache_module (static)
 filter_module (shared)
 headers_module (shared)
 heartbeat_module (static)
 heartmonitor_module (static)
 http_module (static)
 include_module (static)
 info_module (static)
Loaded Modules:
 log_config_module (shared)
 macro_module (static)
 mime_module (shared)
 mpm_event_module (static)
 ratelimit_module (static)
 reqtimeout_module (shared)
 setenvif_module (shared)
 so_module (static)
 ssl_module (static)
 status_module (shared)
 substitute_module (static)
 unixd_module (static)
 version_module (shared)
 watchdog_module (static)

Eu tentei usar a opção -b, mas isso não teve efeito. Em qualquer caso, ignorar os espaços iniciais seria apenas uma solução alternativa. O que eu realmente quero fazer é excluir N linhas de cabeçalho do tipo. Como posso fazer isso?

    
por Tyler Durden 11.01.2018 / 16:09

3 respostas

0

Eu descobri que isso pode ser feito apenas usando um argumento numérico para a cabeça. Como o resto das linhas, exceto a cabeça ainda é entregue ao stdout, o sort pode receber o resto das linhas:

$ /usr/local/apache2/bin/apachectl -M | { head -1; sort; }

Coloque quantas linhas de cabeçalho houver depois da cabeça (aqui é 1).

    
por 11.01.2018 / 16:19
0
sed -n '1p' filename;sed -r "s/\s+//g" l.txt| sed '/^$/d' | sed -n '1!p'  | sort -n
O comando

sed -n '1p' filename == > exibirá primeiro a linha do cabeçalho.

sed -r "s/\s+//g" l.txt| sed '/^$/d' | sed -n '1!p' | sort -n == > imprimirá da segunda linha até o final do arquivo e a classificará.

Se você deseja classificá-lo de uma linha diferente. Você pode apenas alterar o número da linha no comando.

Deixe-me saber por quaisquer dúvidas.

    
por 11.01.2018 / 17:14
0

Você também pode usar tail -n+3 para iniciar na terceira linha, supondo que a linha em branco fosse a segunda linha da saída.

$ /usr/local/apache2/bin/apachectl -M | tail -n+3 | sort
    
por 11.01.2018 / 16:23

Tags