1 |
echo " este es un ejemplo" | sed 's/ //g' |
dara como resultado :
1 |
esteesunejemplo |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#!/bin/bash echo "TEXTO ORIGINAL" echo "--------------" while read linea; do echo $linea done < texto.txt echo "TEXTO CORREGIDO" echo "---------------" while read linea; do text1=`echo $linea | cut -d"|" -f1` text1="${text1#"${text1%%[![:space:]]*}"}" text1="${text1%"${text1##*[![:space:]]}"}" text2=`echo $linea | cut -d"|" -f2` text2="${text2#"${text2%%[![:space:]]*}"}" text2="${text2%"${text2##*[![:space:]]}"}" text3=`echo $linea | cut -d"|" -f3` text3="${text3#"${text3%%[![:space:]]*}"}" text3="${text3%"${text3##*[![:space:]]}"}" text4=`echo $linea | cut -d"|" -f4` text4="${text4#"${text4%%[![:space:]]*}"}" text4="${text4%"${text4##*[![:space:]]}"}" text5=`echo $linea | cut -d"|" -f5` text5="${text5#"${text5%%[![:space:]]*}"}" text5="${text5%"${text5##*[![:space:]]}"}" echo "$text1|$text2|$text3|$text4|$text5" done < texto.txt |
Ejemplo de su ejecución. Para este caso se trabajara sobre un archivo «texto.txt». El script leera linea por linea el archivo y procedera a cortar con el comandi «cut» por medio del delimitador «|» . Posterior a esto procedera a eliminar los espacios delante y atras de la variables.
1 2 3 4 5 6 7 8 9 10 11 12 |
bash prueba.sh TEXTO ORIGINAL -------------- 1534 55789 |723092 | 12203|31/05/2020 15:28:42 |05/01/2021 12:10:44 1264 56589 |173094 | 12203|31/05/2020 15:28:42 |06/01/2021 14:10:44 1237 56769 |127097 | 12203|31/05/2020 15:28:42 |07/01/2021 18:10:44 TEXTO CORREGIDO --------------- 1534 55789|723092|12203|31/05/2020 15:28:42|05/01/2021 12:10:44 1264 56589|173094|12203|31/05/2020 15:28:42|06/01/2021 14:10:44 1237 56769|127097|12203|31/05/2020 15:28:42|07/01/2021 18:10:44 |
tengo algo asi:
1234 56789 |123092 | 12203|31/05/2020 15:28:42 |05/01/2021 12:10:44
Y quiero solo quitar los espacios antes del «|» o despues del «|» ya que esta informacion debo ingresarla por loader y no puedo permitirme quitar los espacios que estan entre la fecha o entre los numeros
Esto es facil de realizar. Lo debes hacer primero con el comando CUT una vez separadas las variables, les quitas los espacios al principio y al final. DEspues vuelves a unir el registro con el comando echo. Lo grabas en un nuevo archivo.
Amigo bune dia como quedo el script para la solucion.
1234 56789 |123092 | 12203|31/05/2020 15:28:42 |05/01/2021 12:10:44
Y quiero solo quitar los espacios antes del «|» o despues del «|» ya que esta informacion debo ingresarla por loader y no puedo permitirme quitar los espacios que estan entre la fecha o entre los numeros
Amigo buen dia como quedo la solucion en el script
JS
Se me ocurre algo asi, pero puden haber muchas soluciones. Esto es algo que funciona, el script lee el archivo linea por linea, luego lo separon en campos (delimitador «|») y despues les quito los espacios a la izquiera y a la derecha de la variable. Podria haber utilizado una función, para ahorar lineas de codigo. En fin este codigo se puede mejorar. Espero sirva.
#!/bin/bash
echo "TEXTO ORIGINAL"
echo "--------------"
while read linea; do
echo $linea
done < texto.txt echo "TEXTO CORREGIDO" echo "---------------" while read linea; do text1=
echo $linea | cut -d"|" -f1
text1=»${text1#»${text1%%[![:space:]]*}»}»
text1=»${text1%»${text1##*[![:space:]]}»}»
text2=
echo $linea | cut -d"|" -f2
text2=»${text2#»${text2%%[![:space:]]*}»}»
text2=»${text2%»${text2##*[![:space:]]}»}»
text3=
echo $linea | cut -d"|" -f3
text3=»${text3#»${text3%%[![:space:]]*}»}»
text3=»${text3%»${text3##*[![:space:]]}»}»
text4=
echo $linea | cut -d"|" -f4
text4=»${text4#»${text4%%[![:space:]]*}»}»
text4=»${text4%»${text4##*[![:space:]]}»}»
text5=
echo $linea | cut -d"|" -f5
text5=»${text5#»${text5%%[![:space:]]*}»}»
text5=»${text5%»${text5##*[![:space:]]}»}»
echo «$text1|$text2|$text3|$text4|$text5»
done < texto.txt user@server1 $ bash prueba.sh TEXTO ORIGINAL -------------- 1534 55789 |723092 | 12203|31/05/2020 15:28:42 |05/01/2021 12:10:44 1264 56589 |173094 | 12203|31/05/2020 15:28:42 |06/01/2021 14:10:44 1237 56769 |127097 | 12203|31/05/2020 15:28:42 |07/01/2021 18:10:44 TEXTO CORREGIDO --------------- 1534 55789|723092|12203|31/05/2020 15:28:42|05/01/2021 12:10:44 1264 56589|173094|12203|31/05/2020 15:28:42|06/01/2021 14:10:44 1237 56769|127097|12203|31/05/2020 15:28:42|07/01/2021 18:10:44 userg@server1 $