我的问题看起来很简单,但是:
- 我想删除整个字符串,而不是字符列表,所以我不能使用
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。
答案1
sed
在这种情况下,您不需要双引号,因此使用:
sed -e 's/Company.Customer.Server.Communication.Connection.ConnectionManager//g'
您还可以使用类似以下内容awk
:
awk '{gsub(/Company.Customer.Server.Communication.Connection.ConnectionManager/,"");print}'