awk - 我的 awk 脚本有问题。 -condition : using variable in awk. - 目标:打印特定列开始在文本中计数变量

标签 awk

我想在文本中打印带有特定列开始计数变量的整行。

  • 文件.日志格式
1 101010 101010 4.0001 my home
2 101010 101010 5.0001 my home
3 101010 101010 6.0001 my home
4 101010 101010 7.0001 my home
  • 我的脚本
count=4
awk -v cnt="$count" '$4 ~ /^[cnt]\./' file.log
  • 我想要这个结果。
1 101010 101010 4.0001 my home
  • 但我的结果是什么都没有....

请告诉我我脚本的错误点。

最佳答案

您不需要在文字正则表达式中使用 awk 变量,在这里使用 int 函数将第 4 个字段转换为整数,然后直接将其与变量进行比较,例如:

count="4"
awk -v cnt="$count" 'int($4)==cnt' Input_file

解释: 首先将 shell 变量 count 作为 awk 传递给 cnt多变的。然后在第 4 个字段上使用 int 函数仅获取整数部分,例如 --> 从 4.00014 进行精确比较cnt,一旦相等,它将打印该行。

关于awk - 我的 awk 脚本有问题。 -condition : using variable in awk. - 目标:打印特定列开始在文本中计数变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65261684/

相关文章:

linux - ps start_time 作为时间戳

bash - 全局匹配和替换多行文本

regex - sed正则表达式用同名变量替换值

linux - 按 CPU 时间过滤 ps 输出

使用管道的 Awk 打印在 Jupyter Notebook 中无法使用 iPython

linux - 检查 bash 中的正确列

bash - 为什么需要这个斜杠?

bash - 将 awk 的结果放入数组中

bash - awk 两个文件的数字范围

scripting - 如何调试 AWK 脚本