awk连载5: if判断
在用awk执行操作时,有时我们需要先做个判断,再决定要不要执行相关的操作,这里的判断可以使用if语句来实现。
if判断的语法:
if(判断1){语句1}
else if(判断2){语句2}
else if(判断3){语句3}
...
else{语句n}
当awk对每行进行操作的时候,首先把这行的内容在if判断语句里过一遍,满足判断1,就执行语句1,后面的判断就不再执行了。如果判断1不满足,则进行判断2,依次类推知道把所有的判断都执行完。如果所有的判断都不满足,则执行else里的语句。
在awk里完成的写法就是:
awk ‘/模式/{if(判断1){语句1}else if(判断2){语句2}else{语句n}}’ file
比如下面是当前系统中所有的虚拟机:
现在以特定的格式来显示哪些是运行的,哪些是不运行的,比如下格式:
director 是运行的
test 是关闭的
用下面的语句来实现:
这里也支持三目操作符,语法如下:
print {(判断?语句1:语句2)} file
这里的意思是判断如果成立,则执行语句1,否则则执行语句2
例子
注意上面,因为要显示虚拟机名,所以$2这个要单独拿出来,不能放在””里。