2017-05-24 121 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進行更換。

希望得到這個幫助。