2017-05-24 97 views
1

输入: 文本文件:backup_list.txt识别文本

/home/common/xyz_V*.txt /home/common/hello.txt /home/mutaq/xya_*_logs.txt /home/mutaq/xygs.txt

文字:/home/mutaq/xya_Juvi_V1.01_logs.txt

现在我想匹配这个文件中的文本。 由于文件有一行/home/mutaq/xya_*_logs.txt,它与文字/home/mutaq/xya_Juvi_V1.01_logs.txt相似,考虑使用星号(*)作为代表其间的多个字符的字符。

现在我想知道文件是否存在于文件中。

使用grep,我不能用星号来区分。 有一种方法,我发现我可以先遍历backup_list.txt 并为每一行调用ls命令并将它们存储在某个位置,然后我可以直接将文本与存储的值进行匹配。

但是,有没有更好的方式做到这一点,这样我可以目录搜索文件与该文件?

回答

0

第一个答案可能是grep -f选项,它允许grep在文件传入参数中进行搜索。你可以尝试:

ls /path/to/files/ | grep -f backup_list.txt 

但给backup_list.txt内容到grep的模式“*”必须通过更换说任何字符0或N的时间和'*“”必须由'\'替换。匹配 '。'字符而不是任何字符。

您可以使用sed进行更换。

希望得到这个帮助。