GNU/Linux >> Tutoriales Linux >  >> Linux

sed con cadena literal, no archivo de entrada

Funciona como usted quiere:

echo "A,B,C" | sed s/,/\',\'/g

Mi versión usando variables en un script bash:

Encuentre cualquier barra diagonal inversa y reemplácela con barras diagonales:

input="This has a backslash \\"

output=$(echo "$input" | sed 's,\\,/,g')

echo "$output"

Tiene un conflicto de comillas simples, así que use:

 echo "A,B,C" | sed "s/,/','/g"

Si usa bash, también puede hacerlo (<<< es un here-string ):

sed "s/,/','/g" <<< "A,B,C"

pero no

sed "s/,/','/g"  "A,B,C"

porque sed esperar archivo(s) como argumento(s)

EDITAR :

si usa ksh o cualquier otro:

echo string | sed ...

Linux
  1. Adición Con 'sed'?

  2. Advertencia con nftw

  3. texto de eco con nueva línea en bash

  4. ¿Cómo cambiar un archivo en el lugar usando awk? (como con sed -i)

  5. reemplazar líneas en un archivo con líneas en otro por número de línea

Comando Echo en Linux con ejemplos

Sustitución de cadena en Bash

Comando WC de Linux con ejemplos

Manipulación de texto con sed y grep

Cómo hacer eco en un archivo

Tutorial de Unix Sed:operación de archivos de varias líneas con 6 ejemplos prácticos