【发布时间】:2017-10-24 17:55:30
【问题描述】:
尝试根据文件名约定过滤文件
eg: Standard_<number>_<15digitnumber>.xml
我能够使用以下命令来获取符合上述条件的文件,但它还包括中间的 varchar。
ls Standard_[0-9]*_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].xml
输出:
标准_2149190256_151116162725717.xml
标准_2149190257_151116162725717.xml
标准_2149ABCDE_151116162725717.xml
在上面突出显示的输出中,它返回字符串,因为我在中间的数字后面有 *。我尝试在 [0-9] 之前和之后放置 + 以仅包含数字,但该命令不起作用。
ls Standard_[0-9]+_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].xml
输出:不能 ls: "/somefolder/Standard_[0-9]+_[0-9][0-9][0-9][0-9][ 0-9][0-9][0-9][0-9][0-9][0-9][0-9]" 未找到
ls Standard_+[0-9]_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].xml
输出:不能 ls: "/somefolder/Standard_+[0-9]_[0-9][0-9][0-9][0-9][ 0-9][0-9][0-9][0-9][0-9][0-9][0-9]" 未找到
感谢您的帮助。
【问题讨论】:
-
请查看Markdown help 页面,以帮助您正确格式化此问题,使其清晰易读
-
@ctwheels 感谢您的回复。我刚刚更新了格式。
标签: regex linux bash shell sftp