gpt4 book ai didi

bash - 查找其中一个文件中不存在字符串的子目录

转载 作者:行者123 更新时间:2023-12-04 10:24:11 25 4
gpt4 key购买 nike

我在 Linux 中有一个包含很多子目录的目录.

每个子目录包含一个名为 variables_list.txt 的文件

现在在每个variables_list.txt文件我想检查一个字符串是否存在。

例如:

如果字符串如下所示

export host_name=

我想找出 variables_list.txt 中的所有子目录文件字符串不存在。

我试过如下
grep -r -l "export host_name=" .

这是打印字符串所在的所有文件名。

我也试过如下
grep -Hrn "export host_name=" 

这也会打印所有文件名,其中包含行号的字符串

我能达到我想要的

最佳答案

您可以通过管道将 grep 结果发送到 dirname :

grep -v -Z -r -l "export host_name=" .  | xargs -0 dirname

例子:
$ mkdir {1..10}
$ mkdir 'test dir with space'
$ echo export host_name= >> 2/variables_list.txt
$ echo export host_name= > 3/variables_list.txt
$ echo export host_name= > 4/variables_list.txt
$ echo export host_name= > 5/variables_list.txt
$ echo export host_nname= > 'test dir with space'/variables_list.txt
$ echo export hostt_name= > 3/variables_list.txt
$ find . -name variables_list.txt -exec sh -c 'grep "export host_name=" "$1" >/dev/null || echo "$(dirname "$1")"' sh {} \;
./3
./test dir with space

关于bash - 查找其中一个文件中不存在字符串的子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60696559/

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