如果该字段前面有$符号,如何检查某个字段是否大于某个数字?

5ar*_*ase 5 bash awk

给定一个employee.txt以格式(Firstname,Lastname,Salary)调用的文件,其中space为字段分隔符:

Foo Bar $1,000
First Last $5,550
Abc Def $3,000
Stack Overflow $6000
Help Please $4700
Run Code Online (Sandbox Code Playgroud)

我想打印第三个字段大于$ 4,000的行.期望的输出:

First Last $5,550
Stack Overflow $6000
Help Please $4700
Run Code Online (Sandbox Code Playgroud)

我不确定如何检查字段是否大于4000,例如,使用$,中的字段.

我已经尝试使用sed替换$,空白然后重定向到awk但我希望输出包含$,原始.

这可行awk吗?

Joh*_*024 4

$ awk '{v=$3; gsub(/[$,]/, "", v)} v+0>4000' employee.txt 
First Last $5,550
Stack Overflow $6000
Help Please $4700
Run Code Online (Sandbox Code Playgroud)

怎么运行的

  1. v=$3

    将第三个字段保存为变量v

  2. gsub(/[$,]/, "", v)

    从中删除有问题的字符v

  3. v+0>4000

    v打印大于 4000 的行。

打印一系列值

要打印值大于 4000 且小于 5000 的所有行:

$ awk '{v=$3; gsub(/[$,]/, "", v)} v+0>4000 && v+0<5000' employee.txt 
Help Please $4700
Run Code Online (Sandbox Code Playgroud)