我在子目录中有device.json文件,并且从该.json文件中获取文件,我正在尝试打印data = xxx值,并且正在使用以下Grep命令,但是当device.json文件为在子目录之一中不可用。
查找。名称“ device.json” | xargs grep -E'数据'
答案 0 :(得分:0)
如果您想了解不包含“ device.json”条目的目录,那么find . -name device.json
不会删减。您必须执行以下操作:
find . -type d -exec sh -c 'for x; do f="$x/device.json"; if test -f "$f";
then grep -H data "$f"; else echo "$f: No such file" >&2; fi; done' _ {} \+
答案 1 :(得分:0)
尝试类似的东西:
find . -type d |
while IFS= read -r dir; do
file="$dir/device.json"
if [ -f "$file" ]; then
grep 'data' "$file"
else
printf '"%s" does not exist\n' "$file"
fi
done
仅当您的目录名称可以包含换行符时,它才会失败。显然,grep 'data'
不是在json文件中查找所需值的可靠方法,但这是一个单独的问题。