GNU/Linux >> Znalost Linux >  >> Linux

sed s doslovným řetězcem--ne vstupním souborem

Funguje, jak chcete:

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

Moje verze používající proměnné ve skriptu bash:

Najděte všechna zpětná lomítka a nahraďte je dopřednými lomítky:

input="This has a backslash \\"

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

echo "$output"

Máte konflikt jednoduchých uvozovek, takže použijte:

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

Pokud používáte bash, můžete to udělat také (<<< je here-string ):

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

ale ne

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

protože sed očekávat soubor(y) jako argument(y)

UPRAVIT :

pokud používáte ksh nebo jakékoli jiné:

echo string | sed ...

Linux
  1. Barvení výstupu ocasu pomocí Sed?

  2. Jak změnit soubor na místě pomocí awk? (jako u sed -i)

  3. nahradit řádky v jednom souboru řádky v jiném číslem řádku

  1. Práce s Input Output a přesměrováním chyb v Linuxu

  2. Doplnění s „sed“?

  3. Linux – Gnu Parallel Pair Argument with File Input Argumenty?

  1. Nahradit text více souborů textem Sed?

  2. Upozornění s nftw

  3. Jak nahradit text podobný sedu pythonem?