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

标签 c++ linux bash sed

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

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

所以我有很多文件

#include <Path1/pAth2/naMeofTheHeader.h>

我想把它改成

#include <Path1/pAth2/nameoftheheader.h>

(当然我不希望路径被移动到小写)

有没有人有执行此操作的想法?我尝试了 somme sed 命令(使用\L),但一切正常。

谢谢

最佳答案

你可以试试下面的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>

关于c++ - 如何将文件中的特定表达式切换为小写(linux 命令),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26122880/

相关文章:

c++ - C++中的字符比较

清除终端程序 Linux C/C++ 的输出

linux - Bash,在具有多组此类行的文件中使用指定字符串的两行之间进行 grep

json - 为什么我的 jq 在 JSON 上失败?

linux - 通过 ssh 传递查找命令的问题

bash - 在 Mac 命令行上使用 sed 时无法替换换行符

c++ - 隐式与显式接口(interface)

C++ unordered_map 错误

c++ - num_get facet 和 stringstream 转换为 bool 值 - 初始化 bool 值失败?

linux - 更改为名称中包含空格的目录