我正在尝试在linux上找到命令或创建脚本,允许在子目录中的许多文件中将特定表达式切换为小写。
我需要这个来改变C ++项目中所有包含语句的情况(将Visual Studio项目移植到linux)
所以我有很多文件
#include <Path1/pAth2/naMeofTheHeader.h>
我希望将其更改为
#include <Path1/pAth2/nameoftheheader.h>
(当然我不希望以小写形式移动路径)
有没有人有想法执行此操作?我尝试过somme sed命令(使用\ L)但是一切都有效。
由于
答案 0 :(得分:3)
你可以试试下面的sed命令,
sed 's~\(#include .*\/\)\([^\/.]*\)~\1\L\2~g' file
示例:
$ echo '#include <Path1/pAth2/naMeofTheHeader.h>' | sed 's~\(#include .*\/\)\([^\/.]*\)~\1\L\2~g'
#include <Path1/pAth2/nameoftheheader.h>