查找文件中任何名称的空值

查找文件中任何名称的空值

我有一个以下格式的文件:

Name=Dan
Age=45
Name=Alex
Age=35
Cellphone=12345678901
Name=John
Age=
Cellphone=12345678901

该文件有 1000 个以上格式的数据项Name=Value

如果值缺失,我想在下面的输出中找到这些值作为年龄的缺失值。

我尝试使用 cut 命令,cut -d “=“ -f2 > some file然后 grep 查找空行,grep -n ‘[[:blank:]]’ file然后显示原始文件中的行号。

但由于我有多个文件,这个方法看起来很复杂。

有没有更简单的方法?

答案1

你可以尝试使用这个:

cat <filename> | sed "s/ /\n/g" | grep "=$"

这会将您的空格替换为新行(如果您的值包含空格,则此方法不起作用),然后查找带有 = 后跟行尾的条目。

答案2

如果您将文件视为分隔的,那么您可以匹配并输出第二个的任何行场地最多由空格组成:

awk -F= '$2 ~ /^[ \t]*$/' file

答案3

与扩展正则表达式一起使用grep

grep -Eno "[A-Za-z]+=( |$)" /path/to/file

应打印空键和相应的行号。

相关内容