parte II: Enviando dados pro sed
parte III: Selecionando as linhas em que vamos trabalhar
parte IV: Substituindo
parte V: Scripts em sed
parte VI: Expressões Regulares
parte VII: Referenciando com &
parte VIII: Back Reference
parte IX: Hold Space ou Espaço Reserva
parte X: Por onde prosseguir e Considerações Finais
parte XI: Comandos de uma linha só
Vamos usar o arquivo /etc/passwd, nativo do Linux.
Caso não esteja, use outro arquivo de texto qualquer.
Para para 'trazer' os dados pro terminal digite:
cat /etc/passwd
Agora vamos passar esse arquivo pro sed através da pipe, | :
cat /etc/passwd | sed ""
Agora vamos deletar todas as linhas. Mas não se preocupe, vamos deletar somente o que está no buffer do sed:
cat /etc/passwd | sed 'd'
O comando 'd' deleta a linha atual do buffer e imprime o resultado, de novo e de novo, até o fim do arquivo, pois o sed age em todas as linhas.
Como não dissemos para escrever, ele apenas lê e não altera o arquivo.
Para redirecionar o resultado do sed, ao invés dele ser mostrado na tela, usamos a forma padrão do sed, com o '>':
cat /etc/passwd | sed 'd' > /tmp/newpasswd
Outra maneira de invocar dados pro sed é através da flag '-e', sem usar pipe.
Dessa maneira, faça no seguinte padrão: sed -e 'comandos/de/edição' /caminho/do/arquivo
No nosso exemplo, ficaria:
sed -e 'd' /etc/passwd
Vale lembrar que em algumas versões do sed não é necessário o '-e'. Teste aí no seu.
Note que o sed automaticamente imprime o resultado que foram processados.
Caso não queira vê-los, use a flag '-n':
cat /etc/passwd | sed -n '
Caso você queira que, em alguma situação, seja mostrado algo, use o comando 'p', como o comando 'd'.
Ou seja, o comando a seguir não tem efeito nenhum:
cat /etc/passwd | sed -n 'p' | head -10
O head é pra mostrar apenas as primeiras saídas, apenas por questão de organização.
Nenhum comentário:
Postar um comentário