gpt4 book ai didi

linux - 如何在查找命令中转义 -exec?

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

我的硬盘上有一个重复文件列表。我很难检查文件是否不在列表中。搜索

grep $1 $2 > /dev/null || echo $1

有效。但是我无法让它在 find 命令的 -exec-Part 中工作。

find 250G_EXT4/ -type f -exec grep "{}" duplicates_sorted.txt \> /dev/null \|\| echo {} \;

消息是

grep: >: Datei oder Verzeichnis nicht gefunden (File or directory not found)
grep: ||: Datei oder Verzeichnis nicht gefunden ...
grep: echo: Datei oder Verzeichnis nicht gefunden ...

有人知道正确转义序列的线索吗?或者可能有不同的想法?

最佳答案

为什么不简单

find | grep -vFf duplicates_sorted.txt -

这也应该快得多。

(-F 标志指定文字匹配,即没有正则表达式匹配。否则 a.c 将匹配 abc 等)

find -exec 接受一个命令;该单个命令可以是一个 shell,其中传递了一个任意复杂的脚本:

find -exec sh -c 'grep -q "$1" file || echo "$1"' dummy {} \;

sh -c 的第一个参数用作 $0,因此我们传入一个虚拟占位符值。

关于linux - 如何在查找命令中转义 -exec?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23324110/

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