Algunas formas (todas suponen que desea cambiar el último conjunto de números en la cadena):
$ echo 123.444.888.235 | awk -F'.' -vOFS='.' '{$NF=0}1;'
123.444.888.0
Aquí, -F'.'
indica awk
que se use .
como separador de campo de entrada y -vOFS='.'
que se use como separador de campo de salida. Luego, simplemente establecemos el último campo ( $NF
) en 0 e imprimimos la línea ( 1;
es la awk
abreviatura de "imprimir la línea actual").
$ echo 123.444.888.235 | perl -pe 's/\d+$/0/'
123.444.888.0
El -p
le dice perl
que imprima cada línea de entrada después de aplicar el script dado por -e
. El script en sí es solo un simple operador de sustitución que reemplazará uno o más números al final de la línea 0
.
$ echo 123.444.888.235 | sed 's/[0-9]*$/0/'
123.444.888.0
La misma idea en sed
, usando en [0-9]
lugar de \d
.
Si su cadena está en una variable y utiliza un shell que admite cadenas aquí (como bash
o zsh
por ejemplo), puede cambiar lo anterior a:
awk -F'.' -vOFS='.' '{$NF=0}1;' <<<$var
perl -pe 's/\d+$/0/' <<<$var
sed 's/[0-9]*$/0/' <<<$var