我想在文本中打印带有特定列开始计数变量的整行。
- 文件.日志格式
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.0001
到 4
与 进行精确比较cnt
,一旦相等,它将打印该行。
关于awk - 我的 awk 脚本有问题。 -condition : using variable in awk. - 目标:打印特定列开始在文本中计数变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65261684/