仅替换以bash中的某些字符开头的字符串的一部分

Cou*_*ier 0 string bash replace sed

我不太熟悉bash编码.我有一个cpp文件

#include <lib1.h>
#include <ccLib1.h>
#include <anotherlib.h>
#include <ccToto.h>
Run Code Online (Sandbox Code Playgroud)

如何使一个脚本,将自动替换 <cc*.h>"*.h"; 只替换那些以cc?开头的?

我试过类似的东西 sed -i -e 's/cc*>/"/g' file.cpp

Cyr*_*rus 5

使用GNU sed:

sed '/^#include/{s/<cc\(.*\.h\)>/"\1"/;}' file
Run Code Online (Sandbox Code Playgroud)

输出:

#include <lib1.h>
#include "Lib1.h"
#include <anotherlib.h>
#include "Toto.h"
Run Code Online (Sandbox Code Playgroud)

请参阅:堆栈溢出正则表达式常见问题解答