所以我有一个文件夹,里面有.wav文件,看起来像这样:
afr_(4位(_(随机数字(.wav
我想创建一个包含所有以afr_0184_和afr_1919_开头的文件的列表,我使用这个linux命令行
查找/目录/-名称"arf_0124*.wav"-o-名称";afr_1919_*.wav">列车列表
由于某些原因,列表中只有afr_1919_文件,就好像它覆盖了在它们之前找到的afr_0184_一样。
我也试过这个
find/directory/-name'afr_(0184|1919(_*.wav'>列车列表
,但在这种情况下,列表为空。
我在这里做错了什么?
您可以使用
find /directory/ -regextype posix-egrep -regex '.*/afr_(0184|1919)_[0-9]*.wav' > train.list
要匹配任何4位数的变化,而不是两个"硬编码"值,请使用
'.*/afr_[0-9]{4}_[0-9]*.wav'
使用-name
,您只能使用glob通配符模式进行搜索,您需要-regex
。
使用-regextype posix-egrep
,您可以使用交替和无标题的捕获圆括号。[0-9]*
匹配任意零位或多个数字(用+
替换*
以匹配一个或多个(。
添加.*/
是因为正则表达式应该与整个路径字符串匹配。