Linux/Unix Shell Scripting - Leer archivo y cambiar linea

 
Vista:
sin imagen de perfil
Val: 7
Ha disminuido su posición en 3 puestos en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Leer archivo y cambiar linea

Publicado por Daniel (6 intervenciones) el 04/10/2019 18:33:35
Amigos, necesito un poco de su ayuda, necesito leer un archivo txt, si este archivo tiene una cuenta de correo X lo debo cambiar (ya se como eliminar la linea y agregar el nuevo), pero el tema es que no logro que lea bien el archivo para poder pasarlo al if y que ejecute el cambio

el código que tengo, es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
my_file=/etc/wwwacct.conf.BAK2
v=mail@mail.com
 
for var in $(cat $my_file |grep "mail@mail.com"); do
 
    echo "$var"
 
if [$var==$v]; then
echo "bien"
else
echo "Correo no corresponde"
fi
done

me sale este error al ejecutarlo
1.sh: line 8: [[email protected][email protected]]: command not found
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
sin imagen de perfil
Val: 6
Ha aumentado su posición en 3 puestos en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Leer archivo y cambiar linea

Publicado por NoCarrier (3 intervenciones) el 08/01/2020 04:19:22
1
sed "s/correoaeliminar@ppl.cl/reemplazarpor@ppl.cl/g" mail.txt > resultado.txt
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
sin imagen de perfil
Val: 3
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Leer archivo y cambiar linea

Publicado por Dubs (2 intervenciones) el 05/04/2020 00:23:37
Que hay broder, checa respetando los espacios de cada sentencia tu lo tienes asi:

1
2
3
4
5
6
if [$var==$v]; then
echo "bien"
else
echo "Correo no corresponde"
fi
done

Respetando los espacios te debe quedar asi:

1
2
3
4
5
6
7
if [ $var == $v ];
then
echo "bien"
else
echo "Correo no corresponde"
fi
done


el problema es que tienes el "if" asi:

1
2
3
4
5
if [$var==$v]; <-------- Todo junto
 
debe de ser asi:
 
if [ $var == $v ];  <--------Asi debe quedar segun la documentacion y como lo dijo "Tom"
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