GNU/Linux >> Tutoriales Linux >  >> Linux

Adición Con 'sed'?

Estoy tratando de realizar una operación matemática con sed , pero continúa tratando mis variables como cadenas. La entrada es de este tipo:

$ echo 12 | sed 's/[0-9]*/&+3/'$ 12+3 

Me gustaría tener 15 como salida. Necesito hacer la operación y reemplazar su resultado matemático en un solo pasaje, porque estoy ejecutando el programa como un demonio de Python y quiero evitar pasajes como redirigir stdout en archivos, abrir esos archivos, realizar operaciones, extraer el resultado, hacer el reemplazo. Para mí, sed parece lo mejor para realizar todo en una línea.

Intenté transmitir tanto la entrada como la salida de varias maneras como

$ echo 12 | sed 's/[0-9]*/int(&+3)/'$ echo 12 | sed 's/[0-9]*/int(&+3)/'$ echo 12 | sed 's/[0-9]*/int(&+3)/' 

pero el resultado siempre fue una impresión del segundo campo.

Respuesta aceptada:

Si honestamente quiere usar sed, este es el camino a seguir:

s/[0-9]/<&/gs/0//g; s/1/|/g; s/2/||/g; s/3/|||/g; s/4/||||/g; s/5/|||||/g; s/6/||||||/gs/7/|||||||/g; s/8/||||||||/g; s/9/|||||||||/g:tenss/| 

Entrada:

1+2100+250100-250 

Salida:

3350-150 

Tu misión, si decides aceptarla, es implementar la multiplicación.


Linux
  1. ¿Extraer una expresión regular combinada con 'sed' sin imprimir los caracteres circundantes?

  2. ¿Extraer subcadena según Regexp con Sed o Grep?

  3. ¿Colorear la salida de la cola con Sed?

  4. sed con cadena literal, no archivo de entrada

  5. Usando sed para dividir una cadena con un delimitador

Reemplace las comillas tipográficas con el comando sed de Linux

Manipulación de texto con sed y grep

Uso del comando sed de Linux con ejemplos

Reemplazar una palabra con otra en bash

línea de inserción sed con espacios a una línea específica

Números de relleno cero a 2 dígitos con sed