Эти строки печатаются, потому что {print w;w=""}
происходит каждый раз, даже если в w
ничего нет. Если вы хотите печатать только непустые строки, вам придется поставить действие {print...}
в зависимость от наличия в w
некоторого содержимого.
Удобно, что awk
считает пустую строку false
, а все непустые строки - true
( "True and False in awk
"). Поэтому вы можете получить то, что вам нужно, добавив w
в качестве шаблона:
awk -F'=' '/[[:blank:]]k/{w=w""$2}; w { print w;w=""}'