我用来find
循环一些文件,目标是具有这种结构的文件:
EDI_2016-03-03_09-45-09_TARGET-TYPE_4830_453a2cbb-b8d4-4982_6549_6116_xazfzeg.PDF
EDI_
目标是找到以 开头并包含在中间的文件TARGET-TYPE
,使用 find 命令是:
find . -name "EDI_*_TARGET-TYPE*"
因为我要使用带有循环的输出,所以我不想使用find
和使用ls
(我在带有空格和查找的文件方面遇到了很多问题)。
这有效:ls EDI_
不起作用:
ls EDI_*_TARGET-TYPE*
这不起作用:
ls "EDI_*_TARGET-TYPE*"
这不起作用:
ls 'EDI_*_TARGET-TYPE*'
我真的不知道为什么,如果有人可以将find
命令翻译给我,那就太好了。
答案1
我会做什么:
for file in EDI_*_TARGET-TYPE*; do
do_something "$file"
done
答案2
$ touch EDI_2016-03-03_0945-09_TARGET-TYPE_4830_453a2cbb.pdf
$ touch EDI_2016-03-03_0945-09_TARGET-TYPE_4830hhh_453a2cbb.pdf
$ ls EDI_*_TARGET-TYPE*
EDI_2016-03-03_09-45-09_TARGET-TYPE_4830_453a2cbb.pdf
EDI_2016-03-03_09-45-09_TARGET-TYPE_4830hhh_453a2cbb.pdf
对我有用。 Bash shell Ubuntu 最近的 LTS。