给定一个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吗?
$ 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)
v=$3
将第三个字段保存为变量v。
gsub(/[$,]/, "", v)
从中删除有问题的字符v,
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)
| 归档时间: |
|
| 查看次数: |
526 次 |
| 最近记录: |