我正在转换一堆(Progress)程序在linux上使用(之前在Windows上使用),我正在寻找一种方法来使用大写和小写字母grep程序名,例如“skip_xref.I “或”NO_dt2.i“。 我怎样才能做到这一点?
答案 0 :(得分:2)
这个正则表达式应该有所帮助:
A1 foo
A2 foo
Printing combinations
A1 foo
B bar
A1 foo
B1 bar wrapper begin
B bar
B1 bar wrapper end
A2 foo
B bar
A2 foo
B1 bar wrapper begin
B bar
B1 bar wrapper end
如果你想使用grep:
[a-z].*[A-Z]|[A-Z].*[a-z]
或
grep '[a-z].*[A-Z]\|[A-Z].*[a-z]'
答案 1 :(得分:0)
您可以使用ls -l |grep 'pattern1\|pattern2'
(假设你在一个想要搜索程序的目录中)
进行网络搜索,详细了解常规regex
基础知识,以获得所需的模式。
答案 2 :(得分:0)
要找到不能使用grep的文件名,你需要使用find。
你可以在find中使用正则表达式,但是你需要匹配整个路径。与.
开始匹配将解决问题,因此这不是什么大问题。
然后:
.*/\
将匹配至少有一个小写字符后跟一个大写字符的文件名。
如果你使用group来拥有这个模式而且相反(切换小写和大写),你应该得到所有的匹配:
find . -regex ".*/.*[a-z]+.*[A-Z]+*.*"
答案 3 :(得分:0)
我没有回答模棱两可的问题,但是您可以使用greg -i
的不区分大小写的标志,
例如docker help build | grep -i dockerfile
仍会找到“ Dockerfile”。