Troca String

De Wiki Clusterlab.com.br
Ir para navegação Ir para pesquisar

SIMPLES

#!/bin/bash
ANTES=PREENCHER
DEPOIS=PREENCHER
TEMPFILE=$(mktemp -p /tmp )
cat $1 | sed -e "s/$ANTES/$DEPOIS/g" > $TEMPFILE
cat $TEMPFILE > $1
rm $TEMPFILE

SOFISTICADO

#!/bin/bash
function trocar() {
        ANTES=$2
        DEPOIS=$3
        TEMPFILE=$(mktemp -p /tmp )
        while read arquivo
        do
                cat $arquivo | sed -e "s/$ANTES/$DEPOIS/g" > $TEMPFILE
                cat $TEMPFILE > $arquivo
        done  < $1
        rm $TEMPFILE
}
function testar() {
        echo $1 $2 $3
}
function ajuda() {
        echo $0 analisar \<string\> \| trocar \<arq de dados\> \<string antes\> \<string depois\>
        echo $0 trocar \<arq de dados\> \<string antes\> \<string depois\>
        echo $0 testar \<string antes\> \<string depois\>
        exit
}
function ARQTEMP() {
case $1 in
        criar)
                mktemp -t trocastring.XXXXXX
                ;;
        apagar)
                rm -fr $2
                ;;
esac
}
function analisar() {
        arqtemp=$(ARQTEMP criar)
        time find $(pwd) -type f -exec  grep -l "$1" {} \;  | tee $arqtemp
        echo ###
        echo Dados gerados em $arqtemp
}
if [ $# -eq 0 ]
then
        ajuda
fi
case $1 in
        analisar)
                if [ $# -lt 2 ]
                then
                        ajuda
                else
                        analisar $2
                fi
                ;;
        trocar)
                if [ $# -lt 4 ]
                then
                        ajuda
                else
                        trocar $2 $3 $4
                fi
                ;;
        testar)
                if [ $# -lt 3 ]
                then
                        ajuda
                else
                        testar $2 $3
                fi
                ;;
        *)
                ajuda
                ;;
esac