SuperSed.sh
Publicado por Sandro Marcell 11/09/2007
[ Hits: 4.569 ]
Homepage: http://sanmarcell.wordpress.com
Simples script que mostra o poder e versatilidade do Sed (Stream Editor).
#!/bin/sh # # Emulando alguns comandos com o sed. # (Mostrando um pouco da versatilidade e poder desta incrível ferramenta!) # # Sandro Marcell (sandro_marcell@yahoo.com.br) # # Para acessar o manual completo do sed, num terminal digite: # info sed # # Para informações sobre os comandos emulados, digite: # man [comando] # Checando parâmetros: [ $# -le 1 ] || [ $# -gt 2 ] && { sed : << FINAL Uso: $0 -[ctrpwng[tr]] arquivo Onde: -c Emula o cat (Mostra conteúdo dum arquivo) -t Emula o tac (Mostra conteúdo dum arquivo invertendo ordem das linhas) -r Emula o rev (Mostra conteúdo dum arquivo invertendo caracteres) -p Emula o paste (Une pares de linhas lado a lado) -w Emula o wc -l (Conta a quantidade de linhas dum arquivo) -n Emula o nl -ba (Numera todas as linhas dum arquivo) -g Emula o grep . (Remove linhas em branco dum arquivo) -tr Emula o tr a-z A-Z (Converte caracteres minúsculos para maiúsculos) FINAL exit } # Testes condicionais: [ ! -e $2 ] && { sed : << FINAL [$2] Arquivo não encontrado. FINAL exit } || [ ! -r $2 ] && { sed : << FINAL [$2] Sem permissão para visualizar. FINAL exit } # Capturando opções: case $1 in -c | -C) { # Emulando o cat: sed : < $2 sed : <<- FINAL ================== sed emulando o cat ================== FINAL };; -t | -T) { # Emulando o tac: sed '{ 1!G h $!d}' < $2 > /dev/stdout sed : <<- FINAL ================== sed emulando o tac ================== FINAL };; -r | -R) { # Emulando o rev: sed '{ /\n/!G s/\(.\)\(.*\n\)/&\2\1/ //D s/.//}' < $2 > /dev/stdout sed : <<- FINAL ================== sed emulando o rev ================== FINAL };; -p | -P) { # Emulando o paste: sed '{ N s/\n/ /}' < $2 > /dev/stdout sed : <<- FINAL ==================== sed emulando o paste ==================== FINAL };; -w | -W) { # Emulando o wc -l: sed -n '$=' < $2 > /dev/stdout sed : <<- FINAL ==================== sed emulando o wc -l ==================== FINAL };; -n | -N) { # Emulando o nl -ba: sed = $2 | sed 'N ; s/\n/\t/' sed : <<- FINAL ===================== sed emulando o nl -ba ===================== FINAL };; -g | -G) { # Emulando o grep '.': sed '/^$/d' < $2 > /dev/stdout sed : <<- FINAL ===================== sed emulando o grep . ===================== FINAL };; -tr | -TR) { # Emulando o tr a-z A-Z: sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ < $2 > /dev/stdout sed : <<- FINAL ========================= sed emulando o tr a-z A-Z ========================= FINAL };; *) { # Opção inválida: sed : <<- FINAL [$1] Opção inválida. FINAL };; esac # Fim
cieQemu - Interface para o qemu (Shell & Xdialog)
Instalando o Firefox e o Thunderbird
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta