尝试提取一个文件/或多个文件*中的条目,这些条目仅包含文件中一行的一部分中的 7 个字符

尝试提取一个文件/或多个文件*中的条目,这些条目仅包含文件中一行的一部分中的 7 个字符

我有很多文件,我正在尝试梳理并找出仅包含 7 位数字的条目。

这是我试图提取的一个示例。

    CDR Calling Number: +15555555555
    CDR Called Number: 5557600

这是我必须拉出的当前命令,但该命令还拉出我不想要的其他条目。

cat file* |grep -v "CDR Called Number: +1" |grep -B 1 "CDR Called Number"

以下是我尝试过但没有成功的一些条目

grep '^.......' file*
grep -E '^.{7}$' file*
sed -rn '/^.{7}$/p' file*

答案1

你要

grep -E '\D\d{7}$'
  • 一个非数字,后跟 7 个数字和行尾。

这也可以工作

awk 'length($NF) == 7 && $NF !~ /[^0-9]/'
  • 最后一个字段的长度为 7 个字符,并且不包含非数字。

您的示例中存在一些错误:

  • grep '^.......'-- 线开始与 7 个任何字符
  • grep -E '^.{7}$'-- 该行正好有 7 个字符长。

相关内容