SuperSed.sh
Publicado por Sandro Marcell 11/09/2007
[ Hits: 4.529 ]
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
Gerando logs para arquivos sem sobrescrever
Rádios online com mplayer + Zenity
cieQemu - Interface para o qemu (Shell & Xdialog)
Nenhum comentário foi encontrado.
Como ativar o módulo de cancelamento de ruído no Pipewire
Como escolher o melhor escalonador de CPU para melhorar o desempenho da máquina
Curiosidade sobre DOOM Guy e Isabelle de Animal Crossing
Inicializando servidor Ubuntu na AWS e rodando apache em Container
Otimizando o seu sistema com swappiness
Instalando Brave Browser no Debian 12
Adicionando ícones de status do teclado no system tray do Xfce4
GRUB do Debian 12 não detecta segundo Linux instalado em partição BTRF... (10)
Como instalar software no computador da rede pelo GLPI sem precisar i... (0)
Convertendo valores em bytes maiores que 1YB[DUVIDA] (1)
Instalar ubuntu ao lado do Windows 10, só que em outro SSD (2)