Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.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
Awk if语句中and运算符的语法错误_Awk_And Operator - Fatal编程技术网

Awk if语句中and运算符的语法错误

Awk if语句中and运算符的语法错误,awk,and-operator,Awk,And Operator,我正在尝试运行下面的程序,但是我显然有一个语法错误,我不确定它是什么。我很感激你的帮助 cat $file | awk '{if (($2 & 0x40) != 0) print $1; else {}}' awk不支持按位运算符。但是,如果您有gawk(GNU awk),您可以执行以下操作: gawk '{ if (and($2,0x40) != 0) print $1; }' $file 注意,我删除了空的else子句和不必要的cat 有关gawk中的其他功能和用法,请参见手册。

我正在尝试运行下面的程序,但是我显然有一个语法错误,我不确定它是什么。我很感激你的帮助

cat $file | awk '{if (($2 & 0x40) != 0) print $1; else {}}'

awk不支持按位运算符。但是,如果您有gawk(GNU awk),您可以执行以下操作:

gawk '{ if (and($2,0x40) != 0) print $1; }' $file
注意,我删除了空的else子句和不必要的
cat


有关gawk中的其他功能和用法,请参见手册。

希望看到
gawk'和($20x40){print$1}'
,但这是挑剔。值得注意的是,POSIX awk甚至没有十六进制数,这意味着在这种情况下gawk是不一致的(
0x40
应该被解析为
0 x40
,也就是说,
0
和空变量
x40
的串联。其他awk确实做到了这一点。)。在POSIX awk中,检查可以表述为
awk'$2%128>=64{print$1}'
——这很难看,但应该在任何地方都可以使用。只要你只想检查一个位。