Mat*_*ath 7 command-line bash wildcards
有没有写一个简单的方法:
wc -l foo?.txt foo??.txt?
由于在我的情况下我有(最多)两位数字,我尝试使用范围规范,wc -l foo[1-99].txt但这最终只显示了 1 到 9(而不是 99)之间的结果。但这是一个(非工作)黑客,我真的需要像wc -l foo[?,??].txt.
当您有两个或更多选择时,请使用大括号扩展:
foo{?,??}.txt
Run Code Online (Sandbox Code Playgroud)
或者,更具体地说:
foo{[0-9],[0-9][0-9]}.txt
Run Code Online (Sandbox Code Playgroud)
让我们考虑一个包含这三个文件的目录:
$ ls foo*txt
foo111.txt foo11.txt foo1.txt
Run Code Online (Sandbox Code Playgroud)
观察:
$ echo foo{?,??}.txt
foo1.txt foo11.txt
Run Code Online (Sandbox Code Playgroud)
和:
$ echo foo{[0-9],[0-9][0-9]}.txt
foo1.txt foo11.txt
Run Code Online (Sandbox Code Playgroud)
或者,更简洁地说:
$ echo foo{,[0-9]}[0-9].txt
foo1.txt foo111.txt
Run Code Online (Sandbox Code Playgroud)