Unix 从文件中提取每行由特殊字符分隔的多个字符串

Unix 从文件中提取每行由特殊字符分隔的多个字符串,unix,sed,extract,Unix,Sed,Extract,我得到一个文件(FILEMANES.txt),其中包含文本文件中的文件名。每行包含一个或多个由#分隔的文件名 在浏览目录内容的for循环中,我需要将目录中找到的每个文件名与FILEMANES.txt中找到的每个filenameX进行比较 我想我可以用sed和/或awk来做,但我缺少一些技能 如果有人能帮忙,那就太好了 Thank的将每个文件与每个名称进行比较会非常慢。让这些工具完成一些工作: for file in * ; do grep -o "#$file#" FILENAMES.t

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

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

我想我可以用sed和/或awk来做,但我缺少一些技能

如果有人能帮忙,那就太好了


Thank的

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

for file in * ; do
    grep -o "#$file#" FILENAMES.txt
done
或者,没有循环:

ls | sed 's/^\|$/#/g'| grep -oFf- FILENAMES.txt
请注意,如果文件名包含空格和其他特殊字符,则解决方案将更加复杂

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