-1

我得到一个文件(FILEMANES.txt),其中包含文本文件中的文件名。每行包含一个或多个用# 分隔的文件名。

#filename1#
#filename2#filename3#filename4#
#filename5#filename6#
....

在浏览目录内容的for循环中,我需要将目录中找到的每个文件名与找到的每个filenameX FILEMANES.txt 进行比较

我想我可以用 sed 和/或 awk 做到这一点,但我错过了一些技能

如果有人可以提供帮助,那就太好了

谢谢

4

1 回答 1

1

将每个文件与每个名称进行比较会非常慢。让工具做一些工作:

for file in * ; do
    grep -o "#$file#" FILENAMES.txt
done

或者,没有循环:

ls | sed 's/^\|$/#/g'| grep -oFf- FILENAMES.txt

请注意,如果文件名包含空格和其他特殊字符,则解决方案会更加复杂。

于 2013-07-11T13:11:45.990 回答