我在文件夹ABC中有500个波形文件,其名称类似于
{{1}}
全部使用扩展名.wav。
我还有一个文本文件,其中包含3位数字,如
我想从名称以这3位数字结尾的文件夹ABC中选择wave文件。
期待MATLAB或bash脚本解决方案。
我读到了这个: Copy or move files to another directory based on partial names in a text file。但我不知道如何使用它。
答案 0 :(得分:1)
for Matlab
1)使用函数dir
或rdir
获取文件夹中的所有文件名。
2)使用for循环遍历每个文件名,并将每个文件名的最后3位数添加到数组(数组A)。您需要str2num()
这里
3)将所有3位数字解析为数组(数组B)
4)使用函数ismember(B, A)
查找A中包含哪些B元素
5)加载相应的文件名
答案 1 :(得分:0)
find . -name "*.wav" | grep -f <(awk '{print $0 ".wav"}' file)
grep -f
将使用存储在文件中的模式,每行一个,并在查找结果中查找它们。但是你希望这三个数字在最后,所以在上面的命令中,最后一个awk语句将提供一个修改过的文件&#34; .wav&#34;附在每一行。因此对于 001 行,&#34; 0 001 .wav&#34;匹配,但任何文件 001 0.wav不会。
请参阅:process substitution syntax和grep --help
答案 2 :(得分:0)
preg_replace_callback('~^(\h*Data_\d{2,}:\h*")(.*)"~m', function($m) {
return $m[1] . str_replace('"', '', $m[2]) . '"';
}, $content);
我不认为这是一个简单的答案,这就是我在这里问的原因。无论如何,我的问题解决了,这就是为什么我发布这个作为答案。
谢谢大家。