Lectura/Escritura de archivo

Imagen de Finwe
0 puntos

Hola,

estoy intentando almacenar y leer contadores de dos script en un archivo de texto. la idea sería, que cada vez que
se ejecute uno de los script se lea el dato correspondiente y luego se escriba un nuevo dato si así se requiere.

Mi problema no se trata de contadores, so no más bien de como leer y escribir en el archivo. Por ejemplo

archivo.txt

  5
  2  

la idea seria que script1 lea el 5 y script2 lea el 2.
he intentado hacer en script1, por ejemplo

variable=cat<archivo.txt 

0

variable=`cat<archivo.txt|cut -f 1`

y luego

echo $variable

o

echo ${variable[0]}

pensando que podría ser un arreglo, pero el resultado siempre es el mismo...5 2 y no 5 que es la idea que tengo.

el mismo problema se me presenta al momento de escribir. No se como hacer que script1 almacene un valor en la primera línea y script2 lo haga en la segunda. Si pudiera leer los datos como campos podría generar el archivo nuevamente, pero me encuentro con el mismo problema.

Como sulución parche lo he hecho en dos archivos diferentes, pero me gustaría que los datos se almacenen en uno sólo.

Cualquier man que me recomienden será bienvenida.

Saludos

Imagen de joseluis
+1
0
-1

Estoy muy espeso y no estoy seguro de haberte comprendido bien, pero si lo que quieres es que el primer script lea el valor de la primera línea y el otro lea el valor de la segunda podrías hacer lo siguiente:

variable=`cat archivo.txt`
variable=`echo $variable | cut -d" " -f 1`

En un solo paso

variable=`cat archivo.txt | cut -d" " -f 1`

no funciona y sigue sacando "5 2" pero haciendolo en dos pasos separados sí que obtienes el 5, o el 2 con:

variable=`cat archivo.txt`
variable=`echo $variable | cut -d" " -f 2`

De todas formas, ¿archivo.txt no podría contener además de los valores unos identificadores para que cada script busque los suyos?. Me explico con un ejemplo:
Contenido de archivo.txt:

script1=5
script2=2

Búsqueda del valor en el script1

variable=`grep "script1=" archivo.txt | cut -d"=" -f 2`

Modificación del valor en el script1 (por ejemplo por 6):

sed "s/script1=$variable/script1=6/g" archivo.txt > temparchivo.txt
mv temparchivo.txt archivo.txt

Espero que alguno de estos desvaríos te sirva :)

-----
Lectura obligada:

+1
0
-1

Fdo. Forense asesino, Censor fundamentalista, Fustigador de novatos y Patético maleducado

Imagen de Finwe
+1
0
-1

joseluis Dijo:

    Espero que alguno de estos desvaríos te sirva :)

Pero es que me resolviste el problema. Las dos soluciones me sirven. En un principio, la segunda opción no era la más adecuada ya que uno de los datos tiene que ser leido por un programa en C, pero como me parece mucho más elegante y ordenada creo que voy a modificar un poco el código para implementar lo que me propones.

De paso me apareció sed, que no sabía de su existencia.

Un saludo y muchas gracias

PD: pero ¿como no se me ocurrió hacerlo en dos pasos :? ?...era evidente.
----------
Iniciando script....
Generando backup del comentario....
Backup exitoso....
Mirar la Guía Ubuntu y también las NORMAS

+1
0
-1

----------
Iniciando script....
Generando backup del comentario....
Backup exitoso....
Mirar la Guía Ubuntu y las NORMAS