我的任务是编写一个shell脚本,该脚本检查文件名是否符合特定的模式,我不知道如何执行。
文件名应该遵循如下模式:
(Project-ID)_(Env)_(Source-System-ID)_(DataDescriptor)_(CCYYMMDD)_(Seq)_(Freeformat)_(codepage)示例文件可能如下所示:
ABC_PRD_00227_ACC_20130128_01_LTSB.CP1252如果文件不符合模式,那么如果可以显示某种警告,那就更好了。
发布于 2014-01-28 16:07:21
今天我的find-fu很弱,所以我无法接受使用- regex /-iregex和不同的-regextype选项的regex。
这个有点慢,但希望能帮到你:
$ find . -maxdepth 1 -type f | grep -P '[[:alnum:]]{3,8}_(DEV|SYT|SIT|UAT|PRD)_\d+_[[:alnum:]]+_\d\d\d\d[0-1]\d[0-3]\d_\d\d_[[:alnum:]]+\.[[:alnum:]]+'
./ABC_PRD_00227_ACC_20130128_01_LTSB.CP1252假设您希望找到与模式不匹配的文件,只需将-v开关添加到grep。
https://unix.stackexchange.com/questions/111311
复制相似问题