我的awk脚本中有一个问题-条件:在awk中使用变量。-目标:打印文本中的特定列开始计数变量

我的awk脚本中有一个问题-条件:在awk中使用变量。-目标:打印文本中的特定列开始计数变量,awk,Awk,我想用文本中的特定列开始计数变量打印整行 file.log格式 我的剧本 我想要这个结果 但我的结果什么都不是 请告诉我脚本的错误点。您不需要在文本regexp中使用awk变量,在此处使用int函数将第四个字段转换为整数,然后直接与变量进行比较,如: count="4" awk -v cnt="$count" 'int($4)==cnt' Input_file 说明:第一次将外壳变量计数作为awk变量传递到cnt。然后在第4个字段上使用i

我想用文本中的特定列开始计数变量打印整行

  • file.log格式
  • 我的剧本
  • 我想要这个结果
  • 但我的结果什么都不是

请告诉我脚本的错误点。

您不需要在文本regexp中使用
awk
变量,在此处使用
int
函数将第四个字段转换为整数,然后直接与变量进行比较,如:

count="4"
awk -v cnt="$count" 'int($4)==cnt' Input_file
说明:第一次将外壳变量
计数
作为
awk
变量传递到
cnt
。然后在第4个字段上使用
int
函数,仅获取整数部分,例如从
4.0001
4
的整数部分,与
cnt
进行精确比较,一旦相等,它将打印该行。

您可以使用动态(也称为计算)而不是文本regexp:

awk -v cnt="$count" '$4 ~ ("^" cnt "[.]")' file.log

请参见和。

FYI
[cnt]
是一个括号表达式,表示“一个字母c、n或t中的一个”。看见
1 101010 101010 4.0001 my home
count="4"
awk -v cnt="$count" 'int($4)==cnt' Input_file
awk -v cnt="$count" '$4 ~ ("^" cnt "[.]")' file.log