GNU/Linux >> Znalost Linux >  >> Linux

Lomítko a zpětné lomítko v Sed?

Tato otázka zde již obsahuje odpovědi :Jaké znaky musím ukončit při použití sed ve skriptu sh?

(4 odpovědi)
Uzavřeno před 5 lety.

Chci použít sed změnit lomítko na zpětné lomítko a lomítko, tj. / -> / . Ale to nejde. Zde malý příklad:

#!/bin/bash
TEST=/etc/hallo
echo $TEST
echo $TEST | sed "s/hallo/bello/g"
echo $TEST | sed "s///\//g"

Výstup prvních tří řádků je podle předpokladu. Ten poslední ale nefunguje. Proč? Jak opravit poslední část?

Přijatá odpověď:

Pro výraz, který jste použili, použijte jednoduché uvozovky:

sed 's///\//g'

Ve dvojitých uvozovkách má speciální význam, takže ho musíte lomítko :

sed "s///\\//g"

Ale je čistší změnit oddělovač:

sed 's=/=\/=g'
sed "s=/=\/=g"

Linux
  1. Jaký je rozdíl mezi $(stuff) a `stuff`?

  2. Jak nahradit řetězec řetězcem obsahujícím lomítko se Sed?

  3. Připojit a připojit řetězec ke každému prvku $* v Shell?

  1. Základní dělení pomocí proměnné a celého čísla?

  2. Najít a nahradit ve skriptování shellu

  3. Obnovení stdout a stderr na výchozí hodnotu

  1. ${!foo} A Zsh?

  2. Shell skript s funkcí a parametrem jako proměnnými?

  3. Barvení výstupu ocasu pomocí Sed?