sed替换一个单词,它的前一个单词用分号分隔

时间:2020-11-11 17:16:47

标签: sed

我有一个文件,并且其中*.client的出现次数很多,我想用tbot代替,例如〜

await event.client.send_file(bla bla)
await master.client.send_message(bla bla)
await iter.client.get_entity(bla bla)

我想代替它们〜

await tbot.send_file(bla bla)
await tbot.send_message(bla bla)
await tbot.get_entity(bla bla)

我尝试了类似sed -i 's/*.client/tbot/g' thefile之类的方法,但是没有任何解决方法吗?

1 个答案:

答案 0 :(得分:3)

您可以使用此sed

sed -E 's/[^[:blank:]]+\.client/tbot/' thefile
await tbot.send_file(bla bla)
await tbot.send_message(bla bla)
await tbot.get_entity(bla bla)

要保存更改以内联方式使用,

sed -i.bak -E 's/[^[:blank:]]+\.client/tbot/' thefile

正则表达式详细信息:

  • [^[:blank:]]+:匹配任何非空格字符的1 +。
  • \.client:匹配测试.client