如何在文件中将特定表达式切换为小写(linux命令)

时间:2014-09-30 14:05:49

标签: c++ linux bash sed

我正在尝试在linux上找到命令或创建脚本,允许在子目录中的许多文件中将特定表达式切换为小写。

我需要这个来改变C ++项目中所有包含语句的情况(将Visual Studio项目移植到linux)

所以我有很多文件

#include <Path1/pAth2/naMeofTheHeader.h>

我希望将其更改为

#include <Path1/pAth2/nameoftheheader.h>

(当然我不希望以小写形式移动路径)

有没有人有想法执行此操作?我尝试过somme sed命令(使用\ L)但是一切都有效。

由于

1 个答案:

答案 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>