Bash在文件中等号后查找所有变量的空值

时间:2017-04-11 19:00:46

标签: bash

我有一个配置(conf.file),其中包含变量列表及其从shell脚本

生成的值
For i = Worksheets("Sheet1").UsedRange.RowsCount) to 2 Step -1
    if Cells(i,2) <> Cells(i,3) then
        Cells(i,1).EntireRow.Delete
    end if 
Next i

我希望找到任何变量在等于(=)符号后具有空值,如果是,则报告该消息为配置文件具有以下空变量列表

2 个答案:

答案 0 :(得分:0)

您可以使用awk:

awk -F"[= ]" '$3=="" && NF==3 {print $2}' conf.file

将每个记录用空格或等号分开,然后测试每一行中的第三个字段。如果它为空,它将打印第二个字段(变量)。

更新:在字段数(NF)等于3的测试中添加,以避免空行。

答案 1 :(得分:0)

尝试:

awk -F"=" '$2'   Input_file

正如你需要的那样=一个字段不应该是空的,所以使=作为一个字段分隔符并检查第二个字段是否为空,然后在我的代码中没有定义任何操作,因此任何满足的行都会发生默认的打印操作这种情况。如果这有帮助,请告诉我。

编辑:上面只会给出在=之后值为NULL的值,感谢JNevill让我知道要求正好相反,以下内容可能会有所帮助。

awk -F"=" '!$2{gsub(/.* |=/,"",$1);print $1}'  Input_file