我处理不同的二进制数据。通常,这些是带符号的16位流。使用hexdump时,它看起来像:

...
2150     -191    -262    15      -344    -883    -820    -1038   -780
-1234   -1406   -693    131     433     396     241     600     1280
...


我只想查看数据流中那些大于或小于某个阈值的元素(数据是16位二进制符号)。它可能看起来像:

cat data.pcm | $($here_some_filtering) 2100 -2100


其中输出必须仅提供大于2100且小于-2100的元素。有没有简单的命令行方法该怎么做?

最佳答案

$ cat pcm
2150     -191    -262    15      -344    -883    -820    -1038   -780
-1234   -1406   -693    131     433     396     241     600     1280

$ for num in $(< pcm); do ((num > 2100 || num < -2100)) && echo $num; done
2150

关于linux - 在bash中处理二进制数据文件,查找大于某个数字的元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4375276/

10-15 12:14