Minha pergunta parece ridiculamente simples, mas:
- Gostaria de remover uma string inteira, não uma lista de caracteres, por isso não posso usar
tr
. - Não sei a posição da minha substring, então não posso usar
cut
. - Não estou trabalhando com expressões regulares, mas minha substring é um namespace, portanto contém pontos, então não sei como trabalhar com
sed
.
A questão é a seguinte: tenho as seguintes linhas:
2023-10-01 15:38:35.2545 | Info | Company.Customer.Server.Communication.Connection.ConnectionManager.SendNextTelegram | Message sent to Server: <HM><ID>25364205</ID><TC>CHR</TC><TR><ID>25906006</ID><DS><ID>GPR5_IN</ID></DS></TR></HM>
2023-10-01 15:38:35.6801 | Info | Company.Customer.Server.Communication.Connection.ConnectionManager.OnDataReceived | Telegram received from Server: <HM><ID>25364205</ID><TC>CHR</TC><RT>SUCCESS</RT><RC>0</RC><TR><ID>25906006</ID><DS><ID>GPR5_IN</ID></DS></TR></HM>
Gostaria de remover o namespace "Company.Customer.Server.Communication.Connection.".
Das coisas que tentei, é o seguinte:
sed -e 's/"Company.Customer.Server.Communication.Connection.ConnectionManager"/""/g'
(Posso imaginar que você diga "Mas isso é muito fácil, basta desabilitar expressões regulares em sed
", mas as páginas de manual apenas mencionam a -r
opção, o que faz com que ainda mais expressões regulares sejam usadas.)
Ah, estou trabalhando em um Ubuntu WSL em um computador Windows.
Como
sed
você não precisa (neste caso) de aspas duplas, use:Além disso, você pode usar algo como em
awk
: