É possível alterar o valor padrão de COUNT de cauda e cabeça?

1

O comando less aceita seus padrões com uma variável de ambiente LESS , então você pode

export LESS='-F -g -i -M -R -S -w -X -z-4'

no início da sua sessão.

É possível alterar a contagem de linhas padrão retornada por head e tail de maneira semelhante?

Um alias não é uma opção , porque interrompe a configuração de opções explícitas (por exemplo, em um script):

head -n 15 -5

falha com um erro no GNU e no busybox head , pelo menos.

    
por malteo 03.03.2014 / 12:59

4 respostas

5

Como as opções de estilo antigo, como -5 , +5 , são reconhecidas apenas como o primeiro argumento, você poderia fazer:

head()
  case $1 in
    ([-+][0-9]*) command head "$@";;
    (*) command head -n 15 "$@"
  esac

Isso afetará o head s invocado pelo seu shell atual.

Se você quiser afetar todas as invocações da cabeça, será necessário escrevê-lo como um script que aparece primeiro no seu $PATH :

mkdir -p ~/bin && cat > ~/bin/head << \EOF &&
#! /bin/sh -
case $1 in
  ([-+][0-9]*) ;;
  (*) set -- -n 15 "$@"
esac
exec /usr/bin/head "$@"
EOF
chmod +x ~/bin/head
PATH=~/bin:$PATH export PATH
    
por 03.03.2014 / 17:03
1

Use um alias, por exemplo alias head="/usr/bin/head -n 15" (não, não vai quebrar nenhuma opção posterior).

Use uma função, por exemplo,

head() {
  /usr/bin/head -n 15 "$@"
}

Cobble up your own, como as informações head (1) do GNU sugerem, por exemplo, use sed 15q em um script.

    
por 03.03.2014 / 13:18
0

Usar um alias é certamente uma opção se você estiver trabalhando com head do coreutils versão 8.13. Isso é porque

head -n 5 -n 15 file_name

fornecerá as primeiras 15 linhas de file_name (supondo que o arquivo tenha linhas suficientes. A segunda opção -n substitui a primeira.

Você pode criar um alias:

alias head="/usr/bin/head -n 5"

para definir o padrão como cinco e depois usar:

head -n 15 file_name

O mesmo vale para tail .

    
por 03.03.2014 / 14:07
-1

a melhor maneira é fazer isso "on the fly"

 sudo tail -f /path/to/file

exibirá as últimas 10 linhas (ao vivo) do arquivo mencionado [10 linhas é o padrão para a cauda]

você também pode exibir vários arquivos

sudo tail -f -n 20 /path/to/file1 /path/to/file2

exibirá dois blocos separados de texto, cada um com as últimas 20 linhas de arquivo1 e arquivo2, respectivamente. Eu acho isso útil para exibir duas "caudas" ao vivo de arquivos de log enquanto faz algumas outras ações e verifica a exibição.

    
por 30.01.2018 / 23:51

Tags