【发布时间】:2017-09-24 13:29:28
【问题描述】:
我有一组名称相似的文件:
TEXT_TEXT_YYYYMMDD
示例文件名:
My_House_20170426
我正在尝试删除所有与此格式不匹配的文件。每个文件都应该有一个文本字符串,后跟一个下划线,然后是另一个文本字符串和另一个下划线,然后是 YYYYMMDD 的日期戳。
有人可以就如何构建find 或remove 语句来删除与此格式不匹配的文件提供一些建议吗?
【问题讨论】:
-
到目前为止您尝试过什么?提示:尝试使用
echo My_House_20170426 | grep -E 'pattern'直到它正确匹配。然后使用grep的-q选项,这样使用:if echo $filename | grep -qE pattern ; then ... -
其实看看能不能用
find path -not -regex pattern -delete。在没有-delete的情况下先测试。 -
wrt
a date stamp of YYYYMMDD- 如果文件名为text_text_86753090或其他一些不是有效日期的 8 位数字组合怎么办?删除还是保留? -
只要有八位数字,我就可以确保数据格式正确。