我想知道是否有办法用检查是否$2将第7位设置为1的东西替换if语句?
cat $file | awk '{if ($2 == 87) print $1; else {}}' > out.txt"
Run Code Online (Sandbox Code Playgroud)
例如,93应该打印一些东西而128不应该打印.
bash有按位运算符
测试第7位:
$ echo $(((93 & 0x40) != 0))
1
$ echo $(((128 & 0x40) != 0))
0
Run Code Online (Sandbox Code Playgroud)
另请参阅bash文档
虽然如果你从文件中解析出值,你可能最好继续使用awk,作为@RakholiyaJenish的答案
您可以使用按位运算来检查第 7 位是否1在gawk:
and($2,0x40)
Run Code Online (Sandbox Code Playgroud)
注意:标准awk没有按位运算。因此,您可以使用bash按位运算或perl按位运算(用于字符串处理)。
使用gawk:
gawk '(and($2,0x40)){print $1}' filename
Run Code Online (Sandbox Code Playgroud)
使用perl:
perl -ane 'print "$F[0]\n" if ($F[1]&0x40)' filename
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3709 次 |
| 最近记录: |