Mi script .sh no funciona, que hago mal?

Imagen de Tachan
0 puntos

Hola amigos,

llevo media mañana buscando información en internet, pero no acabo de conseguir lo que quiero.
Tengo una serie de archivos del estilo NOMBRE.ascii con la siguiente estructura:

Title: "Draht/Y0" Name: "Draht/Y0"
X-Axis: [ -0.5, 15.5] 16 Bins, Label: "Drahtnummer Y0" Unit: ""
Abscissa: Label: "Counts" Unit: ""
37 40 29 34 37 45 54 2661
491 49 31 40 41 34 38 34

---- End of Histogram ----

Quiero eliminar de todos ellos las lineas con letras y dejar sólamente los números.
Buscando, buscando me he encontrado con el comando sed, y si hago desde linea de comandos, por ejemplo:

>sed -e '/^---/d' TimeY090mm.ascii

me elimina la última linea del archivo TimeY090.ascii.
Pero como hay varios archivos he intentado crear un script para hacerlo todo a la vez.
Mi script tiene la siguiente forma:

#!/bin/sh

for f in *.ascii; do
sed -e '/^T/d' $f;
sed -e '/^X/d' $f;
sed -e '/^A/d' $f;
sed -e '/^---/d' $f;
done

en linea de comandos hago:

>chmod +x script.sh

y luego

> ./script.sh

aparecen un montón de lineas en pantalla, o sea, que algo sucede, pero si hago luego:

> less archivo.ascii

resulta que las lineas que quiero eliminar siguen ahí.

Que estoy haciendo mal?
Se me acaban las ideas.
Gracias de antemano.
Saludos

Tachan

Imagen de arcachofo
+1
0
-1

Hola Tachan, basicamente no te funciona porque no le has dicho donde guardar los datos resultantes, osea que te los manda a la salida estandar, osea a pantalla.

Otra cosa es que quizás sería mejor hacer una tubería con todos los comandos, algo así:

#!/bin/sh

for f in *.ascii; do
sed -e '/^T/d' $f | sed -e '/^X/d' | sed -e '/^A/d' | sed -e '/^---/d' > archivo_temporal

mv archivo_temporal $f

done

Es
_________________________________________________________________________
http://pic-linux.foroactivo.net

+1
0
-1

_________________________________________________________________________

http://linuxmicros.blogspot.com/