amp*_*ino 4 linux filenames glob
我有一个名为的文件列表:
file000
file001
file002
file003
...
file1100
如何匹配编号大于800但小于1000的所有文件?我正在使用linux bash
谢谢
实际上,我的文件命名如下:
ab869.enc
cp936.enc
g122345.enc
x2022.enc
abc8859-14.enc
aax5601.enc
cp936-1.enc
所以第一个解决方案不匹配正确的文件:(
如何匹配编号在800-999之间的文件?
在shell中,试试这个:
ls file{801..999}
Run Code Online (Sandbox Code Playgroud)
这将列出file801以file999.开头和结尾的文件.
有关说明,请参阅手册:
*[89][0-9][0-9].enc
Run Code Online (Sandbox Code Playgroud)
它使用 Bash 的“路径名扩展”功能(又名“globbing”)来匹配以 800 到 999 之间的数字后跟“.enc”结尾的所有文件。(这不是正则表达式)。
例如,使用上面的表达式,您可以在脚本中执行此操作:
mv *[89][0-9][0-9].enc path/to/destination/
Run Code Online (Sandbox Code Playgroud)
如果您还需要它匹配名为“cp850-1.enc”的文件,那么您需要将表达式更改为:
*[89][0-9][0-9]*.enc
Run Code Online (Sandbox Code Playgroud)