gpt4 book ai didi

linux - 在 Shell 中识别包含路径(包括 * 星号)的文件中的文本

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:20:18 25 4
gpt4 key购买 nike

输入:文本文件:backup_list.txt

/home/common/xyz_V*.txt
/home/common/你好.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 considering asterisk(* ) 作为表示中间多个字符的字符。

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

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

但是有没有更好的方法来执行此操作,以便我可以目录搜索该文件中的文本?

最佳答案

第一个答案可能是 grep -f 选项,它允许 grep 使用 parttern 来搜索传入参数的文件。你可以试试:

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

但是要将 backup_list.txt 内容作为模式进行 grep,'*' 必须替换为 '.*' 以表示任何字符 0 或 n 次和 '.'必须替换为“\.”匹配 '。'字符而不是任何字符。

可以用sed进行替换。

希望这对您有所帮助。

关于linux - 在 Shell 中识别包含路径(包括 * 星号)的文件中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44151650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com