Manuais para a linha de comandos

Man » Manual online do sed - documentação online detalhada para a página de manual do sed

🌍
sed - editor de fluxo para filtrar e transformar texto

SINOPSIA

sed [-V] [--version] [--help] [-n] [--quiet] [--silent]
[-l N] [--line-length=N] [-u] [--unbuffered]
[-E] [-r] [--regexp-extended]
[-e script] [--expression=script]
[-f script-file] [--file=script-file]
[script-if-no-other-script]
[file...]

DESCRIÇÃO

Sed é um editor de fluxo. Um editor de fluxo é usado para realizar transformações básicas de texto em um fluxo de entrada (um arquivo ou entrada de um pipeline). Embora, em alguns aspectos, seja semelhante a um editor que permite edições baseadas em script (como o ed), o sed funciona fazendo apenas uma passagem sobre a(s) entrada(s) e, portanto, é mais eficiente. Mas é a capacidade do sed de filtrar texto em um pipeline que o distingue particularmente de outros tipos de editores.

-n, --quiet, --silent

suprime a impressão automática do espaço de padrão

--debug

anota a execução do programa

-e script, --expression=script

adiciona o script aos comandos a serem executados

-f script-file, --file=script-file

adiciona o conteúdo de script-file aos comandos a serem executados

--follow-symlinks

segue os links simbólicos ao processar no local

-i[SUFFIX], --in-place[=SUFFIX]

edita arquivos no local (cria um backup se SUFFIX for fornecido)

-l N, --line-length=N

especifica o comprimento desejado para a quebra de linha para o comando `l`

--posix

desativa todas as extensões GNU.

-E, -r, --regexp-extended

usa expressões regulares estendidas no script (para portabilidade, use POSIX -E).

-s, --separate

considera os arquivos como separados, em vez de como um único fluxo longo e contínuo.

--sandbox

opera em modo sandbox (desativa os comandos e/r/w).

-u, --unbuffered

carrega quantidades mínimas de dados dos arquivos de entrada e limpa os buffers de saída com mais frequência

-z, --null-data

separa as linhas por caracteres NUL

--help
exibe esta ajuda e sai

--version
exibe informações da versão e sai

Se nenhuma das opções -e, --expression, -f ou --file for fornecida, então o primeiro argumento que não for uma opção é considerado como o script sed a ser interpretado. Todos os argumentos restantes são nomes de arquivos de entrada; se nenhum arquivo de entrada for especificado, então a entrada padrão é lida.

Página inicial do GNU sed: [https://www.gnu.org/software/sed/]. Ajuda geral sobre o uso de software GNU: [https://www.gnu.org/gethelp/>. Envie relatórios de bugs para: <_].

Empacotado pelo Debian. Copyright © 2022 Free Software Foundation, Inc. Licença GPLv3+: GNU GPL versão 3 ou posterior [https://gnu.org/licenses/gpl.html]. Este é um software livre: você pode alterá-lo e redistribuí-lo. NÃO HÁ GARANTIA, na medida permitida por lei.

SINOPSIA DOS COMANDOS

Esta é apenas uma breve sinopse dos comandos sed para servir como um lembrete para aqueles que já conhecem o sed; outra documentação (como o documento texinfo) deve ser consultada para descrições mais completas.


Comandos de endereço zero

: label

Rótulo para os comandos b e t.

#comment

O comentário se estende até a próxima quebra de linha (ou o final do fragmento de script -e).

}

O colchete de fechamento de um bloco { }.

Comandos de endereço zero ou um

=

Imprime o número da linha atual.

a \

text

Anexa texto, em que cada quebra de linha embutida é precedida por uma barra invertida.

i \

text

Insere texto, em que cada quebra de linha embutida é precedida por uma barra invertida.

q [código de saída]

Sai imediatamente do script sed sem processar mais entrada, exceto que, se a impressão automática não estiver desativada, o espaço de padrão atual será impresso. O argumento de código de saída é uma extensão GNU.

Q [código de saída]

Sai imediatamente do script sed sem processar mais entrada. Esta é uma extensão GNU.

r filename

Anexa o texto lido do arquivo filename.

R filename

Anexa uma linha lida do arquivo. Cada invocação do comando lê uma linha do arquivo. Esta é uma extensão GNU.

Comandos que aceitam intervalos de endereços

{

Inicia um bloco de comandos (termina com }).

b label

Desvia para label; se label for omitido, desvia para o final do script.

c \

text

Substitui as linhas selecionadas por texto, em que cada quebra de linha embutida é precedida por uma barra invertida.

d

Exclui o espaço de padrão. Inicia o próximo ciclo.

D

Se o espaço de padrão não contiver uma quebra de linha, inicia um novo ciclo normal como se o comando d tivesse sido emitido. Caso contrário, exclui o texto no espaço de padrão até a primeira quebra de linha e reinicia o ciclo com o espaço de padrão resultante, sem ler uma nova linha de entrada.

h H

Copia/anexa o espaço de padrão para o espaço de retenção.

g G

Copia/anexa o espaço de retenção para o espaço de padrão.

l

Lista a linha atual em uma forma "visualmente inequívoca".

l width

Lista a linha atual em uma forma "visivamente inequívoca", dividindo-a em width caracteres. Esta é uma extensão GNU.

n N

Lê/anexa a próxima linha de entrada para o espaço de padrão.

p

Imprime o espaço de padrão atual.

P

Imprime até a primeira quebra de linha embutida do espaço de padrão atual.

s/regexp/replacement/

Tenta corresponder regexp ao espaço de padrão. Se tiver êxito, substitui essa porção correspondida por replacement. O replacement pode conter o caractere especial & para se referir à porção do espaço de padrão que correspondeu e os escapes especiais \1 a \9 para se referir às subexpressões correspondentes em regexp.

t label

Se um s/// tiver feito uma substituição bem-sucedida desde a última linha de entrada lida e desde o último comando t ou T, então desvia para label; se label for omitido, desvia para o final do script.

T label

Se nenhum s/// tiver feito uma substituição bem-sucedida desde a última linha de entrada lida e desde o último comando t ou T, então desvia para label; se label for omitido, desvia para o final do script. Esta é uma extensão GNU.

w filename

Grava o espaço de padrão atual no arquivo filename.

W filename

Grava a primeira linha do espaço de padrão atual no arquivo. Esta é uma extensão GNU.


x      Troca o conteúdo do espaço de retenção e do espaço de padrão.

y/source/dest/

Transliterar os caracteres no espaço de padrão que aparecem em source para o caractere correspondente em dest.

Endereços

Os comandos Sed podem ser fornecidos sem endereços, caso em que o comando será executado para todas as linhas de entrada; com um endereço, caso em que o comando será executado apenas para as linhas de entrada que correspondem a esse endereço; ou com dois endereços, caso em que o comando será executado para todas as linhas de entrada que correspondem ao intervalo inclusivo de linhas começando no primeiro endereço e continuando até o segundo endereço. Três coisas a serem observadas sobre os intervalos de endereços: a sintaxe é addr1,addr2 (ou seja, os endereços são separados por uma vírgula); a linha que addr1 corresponder sempre será aceita, mesmo que addr2 selecione uma linha anterior; e se addr2 for uma expressão regular, ela não será testada na linha que addr1 correspondeu.

Após o endereço (ou intervalo de endereços) e antes do comando, um ! pode ser inserido, o que especifica que o comando só será executado se o endereço (ou intervalo de endereços) não corresponder.

Os seguintes tipos de endereço são suportados:

number Corresponder apenas ao número de linha especificado (que é incrementado cumulativamente em todos os
arquivos, a menos que a opção -s seja especificada na linha de comando).

first~step

Corresponder a cada step-ésima linha, começando na linha first. Por exemplo, ``sed -n 1~2p'' irá imprimir todas as linhas de número ímpar no fluxo de entrada, e o endereço 2~5 corresponderá a cada quinta linha, começando na segunda. first pode ser zero; neste caso, sed opera como se fosse igual a step. (Esta é uma extensão.)

$      Corresponder à última linha.

/regexp/

Corresponder às linhas que correspondem à expressão regular regexp. A correspondência é realizada no espaço de padrão atual, que pode ser modificado com comandos como ``s///''.

\cregexpc

Corresponder às linhas que correspondem à expressão regular regexp. O c pode ser qualquer caractere.

O GNU sed também suporta alguns formulários especiais de endereço 2:

0addr2

Começar no estado "primeiro endereço correspondido", até que addr2 seja encontrado. Isso é semelhante a 1addr2, exceto que se addr2 corresponder à primeira linha da entrada, o formulário 0,addr2 estará no final de seu intervalo, enquanto o formulário 1,addr2 ainda estará no início de seu intervalo. Isso só funciona quando addr2 é uma expressão regular.

addr1,+N

Corresponderá a addr1 e às N linhas seguintes a addr1.

addr1,~N

Corresponderá a addr1 e às linhas seguintes a addr1 até a próxima linha cujo número de linha de entrada seja um múltiplo de N.

EXPRESSÕES REGULARES

As BREs POSIX.2 devem ser suportadas, mas não são totalmente por causa de problemas de desempenho.

A sequência \n em uma expressão regular corresponde ao caractere de nova linha, e o mesmo para \a, \t, e outras sequências. A opção -E alterna para o uso de expressões regulares estendidas; ela tem sido suportada por anos no GNU sed e agora está incluída no POSIX.

BUGS

Envie relatórios de bugs para _. Além disso, inclua a saída de ``sed --version'' no
corpo do seu relatório, se possível.

AUTOR

Escrito por Jay Fenlason, Tom Lord, Ken Pizzini, Paolo Bonzini, Jim Meyering e Assaf Gordon.

Este programa sed foi construído com suporte a SELinux. O SELinux está desativado neste sistema.

Página inicial do GNU sed: [https://www.gnu.org/software/sed/]. Ajuda geral sobre o uso de software GNU: [https://www.gnu.org/gethelp/>. Envie relatórios de bugs para: <_].

VEJA TAMBÉM

awk(1), ed(1), grep(1), tr(1), perlre(1), sed.info, qualquer um dos vários livros sobre sed, o FAQ do sed (http://sed.sf.net/grabbag/tutorials/sedfaq.txt), http://sed.sf.net/grabbag/.

A documentação completa do sed é mantida como um manual Texinfo. Se os programas info e sed estiverem devidamente instalados em seu site, o comando

info sed

deve fornecer acesso ao manual completo.