【发布时间】:2018-01-22 14:04:38
【问题描述】:
我正在尝试匹配文件中以imports: [ 开头且不包含SharedModule 的字符串。它可以在两个字符串之间包含任何数字或空格、换行符或其他字符(单词)。我一直在努力寻找那些:
grep 'imports: \[[.*\s*]*SharedModule' */*.module.ts
但我什至找不到其中包含“SharedModule”的文件。我的想法是 .* 会找到任何单词,而 \s 会找到空格字符,而带有 * 选择器的字符类将允许它以任何顺序显示。
- 我可以使用这样的字符类来跳过数量不定的不相关行/字符吗?
- 如何否定该语句,使其返回没有“SharedModule”的行?
- 目标是将“SharedModule”附加到导入数组中不存在的位置。
谢谢! (我是新手,到目前为止我学到的一件事是:正则表达式很难)
样本匹配:
imports: [
IonicPageModule.forChild(FormPage),
DynamicFormComponentModule,
SharedModule
],
不应该匹配但是
imports: [
IonicPageModule.forChild(LeadershipPage),
],
应该。
【问题讨论】:
-
grep默认不是多行,检查stackoverflow.com/a/7167115/6320039 -
我现在正在使用选项 -Zo,但只要我包含任何正则表达式,仍然没有找到结果。 -P 不识别?我在 Mac OS X 10.11.6