GNU / Linux /

Comandos o como se llame...

Participa en el tema Comandos o como se llame... en el foro GNU / Linux.
Hola a todos Bueno necesito hacer lo siguiente si es posible ya sea a traves ...

Buscar en este tema:
 
  •  
    #1 Comandos o como se llame...
    Hola a todos

    Bueno necesito hacer lo siguiente si es posible ya sea a traves de comandos en el shell o con un script, quiero abrir archivos de texto y buscar una cadena de texto determinada y reemplazarla por otra, esto lo tengo que hacer en muuuuuuuuchos archivos asi que estaria bueno automatizarlo de alguna manera tipo indicando un directorio que trabaje con todos los archivos de ese directorio.

    Supongo que se debe usar algun editor, dispongo del Vi pero no lo se usar muy bien.

    Cualquier idea que puedan aportar se los agradeceré enormemente.

    Muchas Gracias.

    Varlax
    +
     
    0
    Me gusta
     
    | Más
  • #2

    Con=
    root@localhost:/] cat archivo | grep -i palabra-a-buscar

    podes hacer que busque determinada cadena o palabra en el archivo que quieras o con * en todos los archivos del directorio pero como hacer para que suplante justo esa cadena, la verdad que ni idea
    Me gusta este mensaje
  • #3

    Podés usar el sed, que es un 'stream editor'.

    ante la duda:
    man sed

    para hacer lo que vos querés, por ejemplo reemplazar la cadena Flint por la cadena Varlax en todos los archivos del directorio actual, generando archivos .new (modificado) en lugar de cada archivo.

    $ for i in *
    do
    sed s/Flint/Varlax/ $i > $i.new
    done

    Si queres hacerlo de una evitando los .new podés hacer:

    $ for i in *
    do
    sed s/Flint/Varlax/ $i > sed.tmp
    mv sed.tmp $i
    done
    rm sed.tmp


    Espero te sirva.

    Salu 2
    Me gusta este mensaje
  • #4

    Publicado por flint
    Podés usar el sed, que es un 'stream editor'.

    ante la duda:
    man sed
    :::::
    :::::::
    Espero te sirva.

    Salu 2
    Muy bueno eso flint, no lo conocia al sed, lo voy a probar ni bien pueda. muchas gracias

    a vos tambien Darkgod por postear una respuesta.

    Igual el que quiera darme otra opcion es bienvenida
    Me gusta este mensaje
  • #5

    si tenes subdirectorios el grep con * no te va a servir... pone grep -r palabrakekeres eldirectorio
    como por ej .. mmm...
    grep -r nvidia /etc
    y encuentra esa palabra en /etc/X11/XF86Config cosa ke con el * no podes..
    espero ke te sirva de algo..
    saludos.
    Me gusta este mensaje
  • #6

    Código:
    #!/bin/sh
    
    # $Id: extchg.sh,v 1.2 2001/07/08 01:49:29 lem9 Exp $ 
    
    # original php3->phtml converter by Pavel Piankov <pashah@spb.sitek.net>
    # modified by Tobias Ratschiller to allow any file extension
    # part of the phpMyAdmin distribution http://phpwizard.net/phpMyAdmin
    
    # 2001-07-07, lem9@users.sourceforge.net:
    # - supports sub-directories
    # - no more bak directory
    
    if [ $# != 2 ]
    then
      echo "Usage: extchg.sh <extension to change from> <extension to change to>"
      echo ""
      echo "Example: extchg.sh php3 php"
      exit
    fi
    
    for i in `find . -name "*.$1"`
    do 
    echo $i
    sed -e 's/'$1'/'$2'/g' $i > `ls $i|sed -e 's/'$1'/'$2'/g'`
    rm $i
    done;
    
    La ayuda viene de francia hoy
    Me gusta este mensaje


Estadísticas del tema
  • 5 RESPUESTAS
  • 478 VISTAS
  • 5 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB