Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
1和print在awk中给出不同的输出为什么?_Awk - Fatal编程技术网

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

1和print在awk中给出不同的输出为什么?,awk,Awk,这将打印文件每行的第二列。在这种情况下,它将打印: awk -F= '{print $2}' file 请注意前导空格,因为分隔符设置为= 这: 同: awk -F= '{$2}1' file 因为动作{$2}没有任何效果:它不打印,它不更改任何变量,什么都不更改,它只计算$2的值。所以这没用。因此,该程序相当于“1”,这是一个总是计算为真的模式。由于模式的默认操作是打印行,因此这只是打印文件。这相当于: awk -F= '1' file 也许你的第二个选择是 awk -F= '{ pri

这将打印文件每行的第二列。在这种情况下,它将打印:

awk -F= '{print $2}' file
请注意前导空格,因为分隔符设置为=

这:

同:

awk -F= '{$2}1' file
因为动作{$2}没有任何效果:它不打印,它不更改任何变量,什么都不更改,它只计算$2的值。所以这没用。因此,该程序相当于“1”,这是一个总是计算为真的模式。由于模式的默认操作是打印行,因此这只是打印文件。这相当于:

awk -F= '1' file

也许你的第二个选择是

awk -F= '{ print }' file

否则2美元本身就没什么用了。这里1强制打印现在设置为字段2的行。

您应该添加更多细节并正确设置示例格式。1导致打印整行。它是1{print$0}的缩写。这与打印$2时只打印第二个字段不同。
awk -F= '1' file
awk -F= '{ print }' file
awk -F= '{$0=$2}1'