O comando substituto não precisa para usar /
como o delimitador.
sed 's!/D/dec/prog/g++.exe -Wall --std=c++0x!SYSTEM_PATH/BIN!g' file.txt
Estou usando sed no unix para substituir algum texto por caracteres especiais em um arquivo. Eu pesquiso no Google e encontro o seguinte comando
sed 's/from/to/g' file.txt
aqui 'de' é o texto original sendo substituído, 'to' é o texto de substituição
Estou tentando aplicar isso a um arquivo com texto longo com caracteres especiais, ou seja, substituindo "/D/dec/prog/g++.exe -Wall --std = c ++ 0x" (sem aspas) para "SYSTEM_PATH / BIN", eu tentei o seguinte, mas não funciona
sed 's//D/dec/prog/g++.exe -Wall --std=c++0x/SYSTEM_PATH/BIN/g' file.txt
mas isso aparece com o erro "sed: -e expressão # 1, char 10: opção desconhecida para 's'".
Eu sou iniciante no unix, mas por alguma razão eu preciso logar remotamente um servidor unix para manipular algum arquivo. Eu quero saber
1) como eu posso definir o de e para string para uma variável, algo como FROMSTR = '/D/dec/prog/g++.exe -Wall --std = c ++ 0x' TOSTR = 'SYSTEM_PATH / BIN'
para que eu possa chamar o sed como sed / $ FROMSTR / $ TO / g 'file.txt
mas parece que o sed não sabe interpretar isso como variável
2) depois de substituir o texto por sed, ele não grava o resultado no arquivo original. Como fazer dar certo?
O comando substituto não precisa para usar /
como o delimitador.
sed 's!/D/dec/prog/g++.exe -Wall --std=c++0x!SYSTEM_PATH/BIN!g' file.txt