我的问题看起来简单得可笑,但是:
- 我想删除整个字符串,而不是字符列表,所以我不能使用
tr
. - 我不知道我的子字符串的位置,所以我无法使用
cut
. - 我不使用正则表达式,但我的子字符串是一个命名空间,所以它确实包含点,所以我不知道如何使用
sed
.
要点如下:我有以下几行:
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>
我想删除命名空间“Company.Customer.Server.Communication.Connection”。
我尝试过的事情如下:
sed -e 's/"Company.Customer.Server.Communication.Connection.ConnectionManager"/""/g'
(我可以想象你会说“但这太简单了,只需禁用正则表达式sed
”,但手册页只提到了-r
开关,这会导致使用更多的正则表达式。)
哦,我正在 Windows 计算机上使用 Ubuntu WSL。
如果
sed
您不需要(在本例中)双引号,请使用:您也可以使用类似的内容
awk
: