- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
案例场景:
$ cat Status.txt
1,connected
2,connected
3,connected
4,connected
5,connected
6,connected
7,disconnected
8,disconnected
9,disconnected
10,disconnected
11,disconnected
12,disconnected
13,disconnected
14,connected
15,connected
16,connected
17,disconnected
18,connected
19,connected
20,connected
21,disconnected
22,disconnected
23,disconnected
24,disconnected
25,disconnected
26,disconnected
27,disconnected
28,disconnected
29,disconnected
30,connected
可以看出,存在“空心”,将它们理解为序列文件中带有“disconnected”值的行。
事实上,我想检测这些“漏洞”,但如果我可以设置一个最小n
缺失数字,这将很有用 在序列中。
即:对于“n=5”,可检测到的孔将是 7...13
部分,因为序列中至少连续有 5 个“断开连接”。但是,在这种情况下,不应将缺少的 17
视为可检测的。同样,在第 21 行 whether 得到一个有效的断开连接。
类似于:
$ detector Status.txt -n 5 --pattern connected
7
21
...这可以解释为:
- Missing more than 5 "connected" starting at 7.
- Missing more than 5 "connected" starting at 21.
我需要在 Linux shell 上编写脚本,所以我在考虑编写一些循环、解析字符串等,但我觉得这是否可以通过使用 linux shell 来完成工具,也许还有一些更简单的编程。有办法吗?
即使像 csvtool
这样的小程序是一个有效的解决方案,一些更常见的 Linux 命令(如 grep
、cut
、awk
、sed
、wc
...等)在使用嵌入式设备时对我来说可能是值得的。
最佳答案
#!/usr/bin/env bash
last_connected=0
min_hole_size=${1:-5} # default to 5, or take an argument from the command line
while IFS=, read -r num state; do
if [[ $state = connected ]]; then
if (( (num-last_connected) > (min_hole_size+1) )); then
echo "Found a hole running from $((last_connected + 1)) to $((num - 1))"
fi
last_connected=$num
fi
done
# Special case: Need to also handle a hole that's still open at EOF.
if [[ $state != connected ]] && (( num - last_connected > min_hole_size )); then
echo "Found a hole running from $((last_connected + 1)) to $num"
fi
...发出,给定您在标准输入 (./detect-holes <in.txt
) 上的文件:
Found a hole running from 7 to 13
Found a hole running from 21 to 29
参见:
[[ ]]
用于在不引用扩展的情况下安全地进行字符串比较的语法。$(( ))
在所有符合 POSIX 标准的 shell 中;也可以在没有扩展副作用的情况下使用 (( ))
作为 bash 扩展。关于linux - 如何检测文本文件中大于 n 的 "hollows"序列(孔、不匹配模式的线)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48490357/
有没有办法在 Android 应用程序中设置“空心”颜色? 我的意思是我想要一个带有某种背景的框,而文本实际上会导致背景透明。换句话说,如果整个 View 在蓝色背景上,文本将是蓝色的,如果它是红色的
我正在用java制作一个游戏。我想达到这样的效果: 我该怎么做?我不是要求代码,而是要求关键字,因为我真的不知道如何实现这一点。我应该只用 Sprite 做一个普通的动画吗?问题是结果不会很顺利。也许
我正在尝试了解整个过程挖空又名动态 fork 概念的实际工作原理。 我很好奇的一件事是如何将命令行参数/参数传递给 fork 进程? 这是我正在学习的代码(取自网络),它运行良好,希望我无法找到解决方
本文整理了Java中com.netflix.hollow.core.memory.encoding.ZigZag类的一些代码示例,展示了ZigZag类的具体用法。这些代码示例主要来源于Github/S
我有一个用 Chart.js 制作的极坐标条形图,它看起来像这样。 但我想要一个空心的中心(其中的条形不会一直延伸到圆的中心),并且文档似乎对此没有提及。该功能可能不存在,但我还是会问。我想要一个看起
我正在尝试编写光线转换引擎。 我研究了在 http://www.instructables.com/id/Making-a-Basic-3D-Engine-in-Java/ 找到的教程以及在 http
案例场景: $ cat Status.txt 1,connected 2,connected 3,connected 4,connected 5,connected 6,connected 7,dis
本文整理了Java中com.netflix.hollow.core.memory.encoding.ZigZag.decodeLong()方法的一些代码示例,展示了ZigZag.decodeLong(
本文整理了Java中com.netflix.hollow.core.memory.encoding.ZigZag.decodeInt()方法的一些代码示例,展示了ZigZag.decodeInt()的
我的 C++ 源代码: int main(){ if( argc != 2) { cout <<" Usage: display_image ImageToLoadAndDi
我是一名优秀的程序员,十分优秀!