Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: CrÄsH en 26 Octubre 2010, 04:03 am



Título: duda grep fichero shellscript linux
Publicado por: CrÄsH en 26 Octubre 2010, 04:03 am
Buenas!

Tengo un fichero($SALIDA) lleno en el que me gustaria hacerle
Código:
 grep A $SALIDA > $SALIDA 
Al hacer esto me queda el fichero vacio. Como se haria correctamente?

Gracias


Título: Re: duda grep fichero shellscript linux
Publicado por: Shell Root en 26 Octubre 2010, 04:24 am
mmm así,
Código
  1. shellroot@alex-laptop:~/Escritorio$ ls | grep PoC > PoC.txt
  2. shellroot@alex-laptop:~/Escritorio$

PoC.txt
Código
  1. PoC.cpp
  2. PoC.php
  3. PoC.txt


Título: Re: duda grep fichero shellscript linux
Publicado por: leogtz en 26 Octubre 2010, 06:34 am
Se debe a que no haya lo que buscas, además de que con ">" estás truncando el contenido del archivo.

Código
  1. leo@leo-desktop:~/Escritorio$ cat file.txt
  2. Leonardo
  3. Gutierrez
  4. Ramirez
  5. c++
  6. leo@leo-desktop:~/Escritorio$ cat file.txt | grep -i "^c+.*$"
  7. c++
  8. leo@leo-desktop:~/Escritorio$ cat file.txt | grep -i "^c+.*$" >> "file.txt"
  9. leo@leo-desktop:~/Escritorio$ cat file.txt
  10. Leonardo
  11. Gutierrez
  12. Ramirez
  13. c++
  14. c++
  15. leo@leo-desktop:~/Escritorio$
  16.  

Código
  1. #!/usr/bin/bash
  2. exec 6>&1
  3. exec > "salida.txt"
  4. cat "file.txt" | grep -i "c++"
  5. exec 1>&6 6>&-
  6. cat "file.txt"
  7. exit 0
  8.  

Perfecto, quisiera que se pusieran más dudas sobre shell script, así practicamos todos este maravilloso lenguaje.


Título: Re: duda grep fichero shellscript linux
Publicado por: CrÄsH en 26 Octubre 2010, 13:11 pm
Gracias por vuestras respuestas pero no es eso lo que intentava hacer.
Lo que quiero es modificar el mismo archivo al que se hace el grep.

ALgun idea?

pD: Leo Gutiérrez tu codigo es un buen ejemplo de lo que quiero hacer, pero en lugar de >> quiero >.


Título: Re: duda grep fichero shellscript linux
Publicado por: CrÄsH en 27 Octubre 2010, 00:36 am
Buenas

Me gustaria hacer esto:

Código:
VAR= '> log.txt'

ls -lia | grep 343 $VAR

Creo que lo que esta mal es  la asignacion a VAR, como irian las comillas??


Gracias


Título: Re: duda grep fichero shellscript linux
Publicado por: CrÄsH en 27 Octubre 2010, 22:16 pm
alguienn???


Título: Re: duda grep fichero shellscript linux
Publicado por: leogtz en 28 Octubre 2010, 01:33 am
A ver, si tengo un archivo con el siguiente contenido:

Código:
leo@leo-desktop:~/Escritorio$ cat file.txt 
Leo
perro
gato
bash
c++
perl

leo@leo-desktop:~/Escritorio$

y hago:

Código:
leo@leo-desktop:~/Escritorio$ grep -i "bash" file.txt > file.txt
leo@leo-desktop:~/Escritorio$ cat file.txt
leo@leo-desktop:~/Escritorio$


Se pierde el contenido, por lo que tienes que hacer:

Código:
leo@leo-desktop:~/Escritorio$ cat file.txt
Leo
perro
gato
bash
c++
perl

leo@leo-desktop:~/Escritorio$ sed -ni "/bash/p" file.txt
leo@leo-desktop:~/Escritorio$ cat file.txt
bash
leo@leo-desktop:~/Escritorio$


Título: Re: duda grep fichero shellscript linux
Publicado por: Shell Root en 28 Octubre 2010, 01:36 am
@Leo WTF! Creo que lo que necesita es una variable con el nombre del archivo, al que se va a volcar el contenido del ls -lia.


Título: Re: duda grep fichero shellscript linux
Publicado por: leogtz en 28 Octubre 2010, 01:44 am
Entonces estoy perdido, que se explique mejor.


Título: Re: duda grep fichero shellscript linux
Publicado por: Shell Root en 28 Octubre 2010, 01:54 am
Seh, es algo así, pero ahí si no se como hacedlo en bash. XD

Código
  1. #!/usr/bin/python
  2. import os
  3.  
  4. #Ejecución de comandos
  5. sFile = 'PoC.txt'
  6. os.system("ls -lia | grep 343 >" , sFile)

Algo así.


Título: Re: duda grep fichero shellscript linux
Publicado por: Afsoon en 6 Noviembre 2010, 11:47 am
Esto es lo básico, esto incluye que cuando insertas un parametro lo busca

Código
  1. #!/bin/bash
  2.  
  3. archivo="$1"
  4.  
  5. ls -lia | grep 343 $archivo
  6.  
  7. cat $archivo
  8.  
  9.  

Es muy básico falta que detecte parametros vacios y ya está, nose si lo habras solucionado pero por si acaso

Código:
./archivovariable text
grep: text: No existe el archivo o directorio
cat: text: No existe el archivo o directorio