1和打印在awk中给出不同的输出为什么?

时间:2015-08-30 20:11:51

标签: awk

$ cat file
banana = yellow
strawberry = red

$ awk -F= '{print $2}' file
 yellow
 red

$ awk -F= '{$2}1' file
banana = yellow
strawberry = red

2 个答案:

答案 0 :(得分:2)

.glyphicon-test3 {
  margin-right: 5px;
  font-size: 6px;
  line-height: 2;
  top: -1px; <<<Here
}

这将打印awk -F= '{print $2}' file 每行的第二列。在这种情况下,它将打印:

file

(注意前导空格,因为分隔符设置为 yellow red )。

此:

=

与:

相同
awk -F= '{$2}1' file

因为操作awk -F= '1' file 没有任何效果:它不会打印,它不会更改任何变量,什么都不会,它只是评估{{1}的值}。所以它毫无用处。因此,程序等同于{ $2 },这是一种总是评估为真的模式。由于模式的默认操作是打印行,这只是打印文件。它相当于:

$2

答案 1 :(得分:1)

或许对于你想要的第二种选择

awk -F= '{$0=$2}1'

否则$ 2本身不会做任何事情。这里1强制打印现在设置为字段2的行。