我的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