SuperSed.sh
Publicado por Sandro Marcell 11/09/2007
[ Hits: 4.514 ]
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
Interface para tarefas básicas
System Software 2.1 - Instale e remova repositórios e programas de forma simples
Nenhum comentário foi encontrado.
Atenção a quem posta conteúdo de dicas, scripts e tal (2)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como criar um robot em NTSL (Nelogica Trading System Language) para Profitchart
Use o Google PageSpeed Insights para verificar um site
Como Atualizar Fedora 39 para 40
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (31)
Instalacao Manjaro em notebook com placa de video hibrida [RESOLVIDO] (2)
filtrar só as pastas onde tem arquivo (2)