我有一个txt文件,它有一个前缀Id的列表,我需要将它与源目录进行匹配,并获得匹配的文件名并构建一个列表。
我目前正在使用下面的代码来实现这一点,但我只获取列表中最后一个文件名的文件
set -A flist $(find $1 -name "*.csv" | grep "`cat ${tempfile}.txt`"有大约10个匹配的文件,但此命令仅返回最后一个文件,如有任何帮助,将不胜感激
发布于 2014-03-20 17:10:35
$ cat prefixes.txt
foo_[^/]*$
bar_[^/]*$
$ find
.
./blah
./foo_1.txt
./bar_3.txt
./bar_4.txt
./quux_6.txt
./quux_5.txt
./prefixes.txt
./foo_2.txt
$ foo=( $(find . -name "*.txt*" | grep -f prefixes.txt) )
$ set | grep ^foo=
foo=([0]="./foo_1.txt" [1]="./bar_3.txt" [2]="./bar_4.txt" [3]="./foo_2.txt")但请注意,这将在文件名中使用空格,并且对于您的实际问题可能有更好的解决方案。
发布于 2014-03-20 18:34:10
set -A aRray `find . -name "*" | egrep -f RegExPrefix.txt | sed "s/.*/'&'/"`将取决于您的shell。这里是在AIX上使用ksh进行测试的(所以不是GNU和set -A创建数组)
https://stackoverflow.com/questions/22527250
复制相似问题