我有一个配置(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
我希望找到任何变量在等于(=)符号后具有空值,如果是,则报告该消息为配置文件具有以下空变量列表
答案 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