Linux/Unix Shell Scripting - Filtrar caracteres en lineas

 
Vista:

Filtrar caracteres en lineas

Publicado por Felipe (2 intervenciones) el 04/07/2001 19:00:12
Hola,soy muy novato en shell script y me estoy volviendo loco con una historia..Si tengo un fichero de texto plano que tiene varias lineas , y quiero filtrar ciertos campos de cada linea, es decir, por ejemplo de la primera linea quiero coger la 1ª y la 3ª palabra y de la 2 linea la 2ª y la 4ª palabra...Con cut he podido sacar de la primera linea lo que me interesaba, pero no se como diferencias lineas y por lo tanto decirle que quiero que corte..Quizas pueda con awk , pero tengo menos idea que de shell script y en los tutoriales que he mirado no he encontrado solucion alguna..
Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Filtrar caracteres en lineas

Publicado por fernand0 (7 intervenciones) el 05/07/2001 16:26:20
Esto parece una adivinanza! ;)

Para lo que dices, seguramente será mucho más fácil con awk (o algún otro más moderno: perl, python), pero es difícil ayudar si no das más detalles de lo que quieres hacer...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Filtrar caracteres en lineas

Publicado por Felipe (2 intervenciones) el 05/07/2001 16:36:02
Ufsss,siento no haber especificado mas...La cuestion es..tengo un fichero plano con varias lineas de texto,me gustaria filtrar ese archivo de forma que por ejemplo en la primera linea quiero sacar la 3 palabra y la 1 palabra,y en la 2 linea por ejemplo la 2ª palabra y la 4ª.Esas lineas son el resultado de la ejecucion de un comando que quiero pasar para correo.Por ejemplo:
fulanito corre por el campo muy contento
mengano se ha comprado un coche por 30000 ptas

Digamos que en la primera frase quiero capturar fulanito y campo
y en la segunda frase comprado y 30000.He probado con cut,pero no he encontrado en la ayuda ninguna forma de especificar por lineas...de esta forma si hago un cut -b 1- en vez de leer de una linea,lee de las dos.
Con awk metiendo esto awk '{ print $2 , $3 ; }' fichero saco la 2 y la 3 palabra pero de ambas frases!, y no tengo ni idea de como hacerle ver que quiero elegir diferentes palabras de diferentes frases...
Espero haber sido mas explicito esta vez
Muchas gracias por vuestra ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Filtrar caracteres en lineas

Publicado por fernand0 (7 intervenciones) el 10/07/2001 13:30:40
awk tiene if:

if (NR==1) { print $2, $3}
else if (NR==2) { print $4, $5}
else ...

evidentemente, depende de lo que quieras hacer esta no es la solución idea, pero seguimos sin saber qué necesitas ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Filtrar caracteres en lineas

Publicado por CAA (4 intervenciones) el 21/08/2001 14:49:25
Cuando se lee una linea los campos de texto se asocian a variables de esta forma campo1 campo2 campo3 var1 var2 var3.
Por ejemplo si pones read campo1 campo2 campo3 significa que lees lo que haya en el fichero hasta el primer espacio hasta el segundo y hasta el tercero, y se almacecan en las variables campo1, .., campo3.

Bueno, no se si me he explicado bien porque yo tambien soy nueva en esto.
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar