我们正在尝试使一些文件名在大型 JavaScript 代码库中保持一致。我们希望所有文件名都采用驼峰式大小写,但我们还需要“require”语句采用驼峰式大小写。
所以任何任意的 require 语句都应该像这样改变:
// before
var PurchaseProgressBar = require('src/js/Shared/modules/ProgressBar');
// after - camel cased each part of the path
var PurchaseProgressBar = require('src/js/shared/modules/progressBar');
到目前为止,我们已经有了一个几乎可以工作的 sed 脚本:
sed -e "/require/ s=\b\(.\)=\l\1=g"
但是这会产生:
// "var PurchaseProgressBar" was also changed! but shouldn't be
var purchaseProgressBar = require('src/js/shared/modules/progressBar');
我们如何使这个 sed 脚本(或其他方法)仅对 require 调用中的文本进行驼峰命名?
最佳答案
如果您想要更改的每个字母都遵循/(即不需要以 Src 或其他内容开头的路径),那么这可以区分您想要更改的行的部分:
sed -e "/require/ s=\/\b\(.\)=/\l\1=g"
这对我来说适用于您的示例输入。
我只是尝试了一种变体,以允许在模式中使用单引号而不是斜杠。如果原始内容包含“require('Src/js/Shared/modules/ProgressBar')”,则此方法有效
sed -e "/require/ s=\(['\/]\)\b\(.\)=\1\l\2=g"
关于javascript - 仅替换特定单词后的部分文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33656033/