GNU/Linux >> Linux Esercitazione >  >> Linux

sed con stringa letterale, non file di input

Funziona come vuoi tu:

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

La mia versione utilizza variabili in uno script bash:

Trova eventuali barre rovesciate e sostituiscile con barre in avanti:

input="This has a backslash \\"

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

echo "$output"

Hai un conflitto tra virgolette singole, quindi usa:

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

Se usi bash, puoi farlo anche tu (<<< è un here-string ):

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

ma non

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

perché sed aspettati file come argomenti

MODIFICA :

se usi ksh o altri :

echo string | sed ...

Linux
  1. controlla se il file esiste sull'host remoto con ssh

  2. Aggiungi una riga al file /etc/hosts con lo script della shell

  3. echo testo con nuova riga in bash

  4. Come modificare un file sul posto usando awk? (come con sed -i)

  5. sostituire le righe in un file con le righe in un altro per numero di riga

Echo Command in Linux con esempi

Sostituzione di String in Bash

Comando Linux WC con esempi

Manipolazione del testo con sed e grep

Come fare eco in un file

Tutorial Unix Sed:operazione su file multilinea con 6 esempi pratici