我有包含多行和某个字符的文件,这些文件可能只出现一次(在整个文件中);我需要一种方法来检查包含哪些文件。
假设我有
1. 00000
2. 00050
3. 05500
4. 00000
五只只能出现一次。如何使用 bash 和grep将此文件标记为格式错误?
我想你会首先检查哪些行包含 5。如果有不止一行,请停止。然后看看那条线上有没有超过一个五,如果有,就停下来。有一个更好的方法吗?
现在我会通过
grep "5" file | wc -l.
如果不止一个,就停下来。如果没有,请继续这一行。那么我如何计算有多少个 5 呢?起初我使用 5{1} 但这似乎不起作用 - 如果字符串是“55”,它只会匹配其中的每 5 个,而我最多需要 1 个 5。然后我想我会看看是否有超过一个 5,如果有,就停下来。但是 5{2,} 仅在有多个 5 后才有效。另一方面,
.*5.*5.*
只匹配有 2 个或更多 5 的单词,但看起来很怪诞……
有更好的建议吗?我确定有,但现在是晚上,这是我今天的大脑所想的,抱歉。请记住,我只能使用 grep。