我正在尝试使用sed(1)删除所有出现的std::memset和std::memcpywith ::memset和::memcpy.我尝试了以下模式,但它不起作用 - 我只是得到相同的文本.
$ sed 's/std\(::\(memset|memcpy\)\)/${\1}/g'
Run Code Online (Sandbox Code Playgroud)
基本上我想摆脱标准,如果跟着::memset或::memcpy.
通过-r为GNU sed或-EMac OS等BSD系统提供命令行选项,在脚本中使用扩展的正则表达式.
linux$ sed -r 's/std(::(memset|memcpy))/\1/g' code.cpp
macos$ sed -E 's/std(::(memset|memcpy))/\1/g' code.cpp
Run Code Online (Sandbox Code Playgroud)