我们正试图在一个大型的JavaScript代码库中使一些文件名保持一致。我们想要驼峰案例的所有文件名,但我们还需要驼峰案例"要求"语句。
因此任何任意的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调用中的文本?
答案 0 :(得分:2)
如果您要更改的每个字母都遵循/(即没有要求路径以Src或其他东西开头),则可以区分要更改的行的部分:
sed -e "/require/ s=\/\b\(.\)=/\l\1=g"
这适用于我的样本输入。
我刚试过一个变体来允许单引号而不是模式中的斜杠。如果原始包含"需要(' Src / js / Shared / modules / ProgressBar')"
sed -e "/require/ s=\(['\/]\)\b\(.\)=\1\l\2=g"