首页 > 解决方案 > 使用 grep 命令,我可以打印与我的命令匹配的数据,但是当数据不可用时如何打印错误?

问题描述

我的子目录和该 .json 文件中有可用的 device.json 文件,我正在尝试打印 data = xxx 值,并且我正在使用以下 Grep 命令,但我也想在 device.json 文件不可用时打印错误子目录之一。

寻找 。-名称“device.json”| xargs grep -E '数据'

标签: linuxunixgrep

解决方案


尝试类似:

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 文件中找到所需值的可靠方法,但这是一个单独的问题。


推荐阅读