SuperSed.sh
Publicado por Sandro Marcell 11/09/2007
[ Hits: 4.725 ]
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
Obter lista de cidades do IBGE
Converter rmvb em mpeg com Shell + Yad
Calculadora básica em Shell Script
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Falha com leitor de digitais no Ubuntu: sugestões? (0)
Problema em SSD ao dar boot LinuxMint LMDE FAYE 64 (1)