如何编写读取文件并计算“=”号后的整数数量的脚本

如何编写读取文件并计算“=”号后的整数数量的脚本

我正在尝试编写一个脚本来读取具有多个值的文件,类似于下面的日志提取

1=232=343=5610=66=?????? 1=332=343=2010=46=????????? 1=392=343=3610=36=????????? 1=132=343=9610=16=??????

其中值 6=??????或者 ???????? (可以是任何 7/8 字节整数或 7/8 字符)。

我想读取/检查日志并打印带有“6”=的任何字段

然后检查该值的长度,是否大于8个整数/字节

然后将具有该值的行写入新文件”

答案1

对于以 开头且6=后跟不超过 7 位十进制数字的行(将匹配6=,6=123或 ,6=123X45678但不匹配6=12345678):

grep -E '^6=[0-9]{0,7}([^0-9]|$)' < in > out

对于以以下字符开头6=且后跟不超过 7 个字符的行:

grep -xE '6=.{0,7}' < in > out

对于以 开头且6=后跟不超过 7 个字节的行:

LC_ALL=C grep -xE '6=.{0,7}' < in > out

相关内容